Clearly the Secunia guy(s) had no clue
..or they'd have known that DEP is irrelevant to the Java JVM. The JVM works by interpreting bytecode (and for all I know single-steps JIT output since that would still be a lot faster than bytecode interpretation) which means that:
(1) the bytecode generated by javac is just data to the host OS since it can't be run by the OS. All that can happen to it is to get read as data and interpreted by the JVM, which IS a binary executable within the meaning of the act. The OS neither knows not cares that bytecode is going to be interpreted by the JVM. Since the JVM reads the byte code as data and will apply its own rules to prevent access outside the memory regions the JVM has allocated as stack and heap data space, DEP is simply irrelevant.
(2) the JVM allocates and manages all access to memory containing byte code, the stack and heap, ASLR rules also become somewhat irrelevant since the JVM interpreter will use ASLR in OSes that support the facility and, anyway, applies its own sanity checks first, so it will spot an out of limits data reference before it gets bounced off the ASLR gatekeeper.
(2) the JVM is a normal executable that happens to do a number of things as the result of reading the bytecode - WHICH DOESN'T MAKE THE BYTECODE EXECUTABLE TO THE OS
Cameron is right too: implementing DEP and ASLR checks over the head of any program (user-land or not) is entirely OS business: any OS that leaves these checks to a program its running is shockingly badly designed.
This isn't exactly recent news either, boys and girls: mainframes have done this since 1964. No, I don't mean the IBM S/360 schlock, but the ICL 1900 series, which always used zero-based addressing within a program regardless of the address a program was loaded at: the OS knew the datum and limit values for every program and restricted all program addressing (for both data and instructions) to that range - and yes, even in the 60s a running program could be and typically was moved in memory while it was running and could also be stopped, swapped out to disk and back in to (probably) a different memory region without knowing that it had been stopped or moved.