4 answers

I can't say when we will have Java 8 support. Our experience in the past has told us that telling people dates for new function leads to disappointment if we are unable to meet the dates. While this doesn't apply to everything we do take the safer road.

Instead of giving dates and long term technology road maps what we are trying to do is to use our alpha/beta program to release previews of enhancements like Java 8 support as they are being developed. You can access our alpha/beta program at http://wasdev.net/downloads/wasearlyaccess

With respect to Java 8 there are a number of problems affecting our current alpha running on Java 8, some are minor like us setting MaxPermSize:

and some are more significant such as our use of an older release of an open source library that does not have Java 8 support. This results in exceptions like this when running Java EE 6 applications:

[20/03/14 11:55:45:499 GMT] 0000001d m.ibm.ws.anno.targets.internal.AnnotationTargetsImpl_Targets W CWWKC0044W: An exception occurred while scanning class and annotation data. The exception was java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at com.ibm.ws.anno.targets.internal.AnnotationTargetsImpl_Targets.scanClass(AnnotationTargetsImpl_Targets.java:496)
at com.ibm.ws.anno.targets.internal.AnnotationTargetsImpl_Streamer.process(AnnotationTargetsImpl_Streamer.java:89)
at com.ibm.ws.anno.classsource.internal.ClassSourceImpl.scanClass(ClassSourceImpl.java:289)
at com.ibm.ws.anno.classsource.internal.ClassSourceImpl.scanReferencedClass(ClassSourceImpl.java:230)
at com.ibm.ws.anno.targets.internal.AnnotationTargetsImpl_Scanner.scanReferencedClasses(AnnotationTargetsImpl_Scanner.java:305)

In addition some of our containers like EJB and JPA need to be updated to understand the Java 8 bytecode changes to properly run applications.

Thanks for the response. I'm academically curious ... I had assumed that Java bytecode was always backwardly compatible. What does it mean to say that code written for a JVM < 8 won't run on a Java 8 environment?