GA in March 2014 for Java 8 ( http://openjdk.java.net/projects/jdk8/milestones). That schedule will likely hold now that its feature complete.
Kalle On Wed, Sep 25, 2013 at 11:45 AM, Howard Lewis Ship <hls...@gmail.com>wrote: > This is likely something to be addressed in the 5.5 time frame? When is > JDK 8 going to be released? > > > On Wed, Sep 25, 2013 at 11:42 AM, Kalle Korhonen < > kalle.o.korho...@gmail.com > > wrote: > > > Just to close the loop - at least regarding plastic & T5.4 - ASM5 is > needed > > together with Java 8. There's a month old alpha release available at > > http://central.maven.org/maven2/org/ow2/asm/asm/5.0_ALPHA/. More > > information at http://old.nabble.com/Java-8-Support--td34970003.html. > > > > Kalle > > > > > > On Sun, Sep 22, 2013 at 10:21 PM, Kalle Korhonen < > > kalle.o.korho...@gmail.com > > > wrote: > > > > > Unfortunately it doesn't quite seem to work with ASM either, although > > this > > > sounds like easier to fix. Here's the stack trace for a Trivial > Tapestry > > > app using 5.3.7 on Java 8: > > > > > > SEVERE: Exception starting filter Tapestry > > > org.apache.tapestry5.ioc.internal.OperationException: Error building > > > service proxy for service 'RegistryStartup' (at > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, > List) > > > (at RegistryStartup.java:36) via > > > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) > > (at > > > TapestryIOCModule.java:49)): java.lang.IllegalArgumentException > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124) > > > at > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.create(ModuleImpl.java:332) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.access$100(ModuleImpl.java:39) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl$1.invoke(ModuleImpl.java:191) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:140) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl$2.invoke(ModuleImpl.java:207) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.findOrCreate(ModuleImpl.java:213) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.getService(ModuleImpl.java:109) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:421) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:325) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80) > > > at > > > org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118) > > > at > > > > > > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281) > > > at > > > > > > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262) > > > at > > > > > > org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107) > > > at > > > > > > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775) > > > at > > > > > > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452) > > > at > > > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > > at > > > > > > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) > > > at > > > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) > > > at > > > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) > > > at > > > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976) > > > at > > > > > > org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653) > > > at java.util.concurrent.Executors$RunnableAdapter.call(Unknown > > > Source) > > > at java.util.concurrent.FutureTask.run(Unknown Source) > > > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > > > Source) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > > > Source) > > > at java.lang.Thread.run(Unknown Source) > > > Caused by: java.lang.RuntimeException: Error building service proxy for > > > service 'RegistryStartup' (at > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, > List) > > > (at RegistryStartup.java:36) via > > > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) > > (at > > > TapestryIOCModule.java:49)): java.lang.IllegalArgumentException > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:327) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > ... 30 more > > > Caused by: java.lang.IllegalArgumentException > > > at > > > > > > org.apache.tapestry5.internal.plastic.asm.ClassReader.<init>(ClassReader.java:167) > > > at > > > > > > org.apache.tapestry5.internal.plastic.asm.ClassReader.<init>(ClassReader.java:153) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticInternalUtils.convertBytecodeToClassNode(PlasticInternalUtils.java:436) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticClassPool.constructClassNodeFromBytecode(PlasticClassPool.java:481) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticClassPool$1.convert(PlasticClassPool.java:62) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticClassPool$1.convert(PlasticClassPool.java:59) > > > at > org.apache.tapestry5.internal.plastic.Cache.get(Cache.java:37) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticClassPool.getTypeCategory(PlasticClassPool.java:562) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticMethodImpl.invokeDelegateAndReturnResult(PlasticMethodImpl.java:363) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticMethodImpl.access$000(PlasticMethodImpl.java:24) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticMethodImpl$2.doBuild(PlasticMethodImpl.java:221) > > > at > > > > > > org.apache.tapestry5.internal.plastic.InstructionBuilderImpl.doCallback(InstructionBuilderImpl.java:832) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticMethodImpl.changeImplementation(PlasticMethodImpl.java:130) > > > at > > > > > > org.apache.tapestry5.internal.plastic.PlasticMethodImpl.delegateTo(PlasticMethodImpl.java:203) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl$9.transform(ModuleImpl.java:494) > > > at > > > > > > org.apache.tapestry5.plastic.PlasticManager.createProxy(PlasticManager.java:235) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.PlasticProxyFactoryImpl.createProxy(PlasticProxyFactoryImpl.java:64) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.createProxyInstance(ModuleImpl.java:465) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.createProxy(ModuleImpl.java:459) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl.access$900(ModuleImpl.java:39) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ModuleImpl$4.invoke(ModuleImpl.java:311) > > > ... 31 more > > > > > > Kalle > > > > > > > > > > > > > > > On Thu, Sep 19, 2013 at 11:30 AM, Kalle Korhonen < > > > kalle.o.korho...@gmail.com> wrote: > > > > > >> On Thu, Sep 19, 2013 at 11:18 AM, Howard Lewis Ship <hls...@gmail.com > > >wrote: > > >> > > >>> That's a problem; any idea if the ASM code inside Plastic (for > Tapestry > > >>> 5.3+) works on JDK 8? > > >>> Javassist is 100% gone in 5.4. > > >>> > > >> > > >> Not yet but I'll try that out. > > >> > > >> Kalle > > >> > > >> > > >>> > > >>> I've seen some troubling discussions about bytecode changes in JDK 8 > > that > > >>> are going to cause a lot of havoc. > > >>> > > >>> > > >>> On Thu, Sep 19, 2013 at 11:12 AM, Kalle Korhonen < > > >>> kalle.o.korho...@gmail.com > > >>> > wrote: > > >>> > > >>> > Just a heads up for anybody venturing to try running Tapestry 5 > > webapp > > >>> on > > >>> > JRE8. Looks like the latest Javassist is incompatible, I'm getting > a > > >>> stack > > >>> > trace copied below on advised classes. Looks like a straight-up > issue > > >>> with > > >>> > Javassist. I didn't find any relevant bug open but I'll follow up > > with > > >>> > them. Let me know if anybody has more info. > > >>> > > > >>> > Kalle > > >>> > > > >>> > Caused by: java.lang.RuntimeException: java.io.IOException: invalid > > >>> > constant type: 15 > > >>> > at > javassist.CtClassType.getClassFile2(CtClassType.java:203) > > >>> > at javassist.CtClassType.subtypeOf(CtClassType.java:303) > > >>> > at javassist.CtClassType.subtypeOf(CtClassType.java:318) > > >>> > at > > >>> > > > >>> > > > javassist.compiler.MemberResolver.compareSignature(MemberResolver.java:247) > > >>> > at > > >>> > > > javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:119) > > >>> > at > > >>> > > > javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:96) > > >>> > at > > >>> > > javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:704) > > >>> > at > > >>> javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681) > > >>> > at > > >>> > > > javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156) > > >>> > at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45) > > >>> > at > > >>> > > > >>> > > > javassist.compiler.JvstTypeChecker.atCastToRtype(JvstTypeChecker.java:112) > > >>> > at > > >>> > > > javassist.compiler.JvstTypeChecker.atCastExpr(JvstTypeChecker.java:93) > > >>> > at javassist.compiler.ast.CastExpr.accept(CastExpr.java:54) > > >>> > at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241) > > >>> > at javassist.compiler.CodeGen.compileExpr(CodeGen.java:228) > > >>> > at > > javassist.compiler.CodeGen.atReturnStmnt2(CodeGen.java:597) > > >>> > at > > >>> > javassist.compiler.JvstCodeGen.atReturnStmnt(JvstCodeGen.java:424) > > >>> > at javassist.compiler.CodeGen.atStmnt(CodeGen.java:362) > > >>> > at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49) > > >>> > at > javassist.compiler.CodeGen.atMethodBody(CodeGen.java:291) > > >>> > at javassist.compiler.Javac.compileBody(Javac.java:222) > > >>> > at javassist.CtBehavior.setBody(CtBehavior.java:401) > > >>> > at javassist.CtBehavior.setBody(CtBehavior.java:375) > > >>> > at > > >>> > > > >>> > > > >>> > > > org.apache.tapestry5.ioc.internal.services.ClassFabImpl.addMethod(ClassFabImpl.java:226) > > >>> > ... 176 more > > >>> > Caused by: java.io.IOException: invalid constant type: 15 > > >>> > at > javassist.bytecode.ConstPool.readOne(ConstPool.java:1090) > > >>> > at javassist.bytecode.ConstPool.read(ConstPool.java:1033) > > >>> > at javassist.bytecode.ConstPool.<init>(ConstPool.java:149) > > >>> > at javassist.bytecode.ClassFile.read(ClassFile.java:737) > > >>> > at javassist.bytecode.ClassFile.<init>(ClassFile.java:108) > > >>> > at > javassist.CtClassType.getClassFile2(CtClassType.java:190) > > >>> > ... 199 more > > >>> > > > >>> > > >>> > > >>> > > >>> -- > > >>> Howard M. Lewis Ship > > >>> > > >>> Creator of Apache Tapestry > > >>> > > >>> The source for Tapestry training, mentoring and support. Contact me > to > > >>> learn how I can get you up and productive in Tapestry fast! > > >>> > > >>> (971) 678-5210 > > >>> http://howardlewisship.com > > >>> > > >> > > >> > > > > > > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com >