Details
-
Bug
-
Resolution: Done
-
Critical
-
3.0.0.CR1
-
None
-
None
Description
reported from Marc Zottner – tried to run Windup on an app with Java 8 specific code and got:
...(some stuff redacted)...
INVOKESPECIAL/STATIC on interfaces require ASM 5: java.lang.IllegalArgumentException: INVOKESPECIAL/STATIC on interfaces require ASM 5
at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source)
at org.objectweb.asm.ClassReader.a(Unknown Source)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.jboss.windup.rules.apps.java.decompiler.ClassFilePreDecompilationScan.filterClassesToDecompile(ClassFilePreDecompilationScan.java:127) [:3.0.0-SNAPSHOT]
at org.jboss.windup.rules.apps.java.decompiler.ClassFilePreDecompilationScan.perform(ClassFilePreDecompilationScan.java:160) [:3.0.0-SNAPSHOT]
at org.jboss.windup.rules.apps.java.decompiler.ClassFilePreDecompilationScan.perform(ClassFilePreDecompilationScan.java:33) [:3.0.0-SNAPSHOT]
at org.jboss.windup.config.operation.iteration.AbstractIterationOperation.perform(AbstractIterationOperation.java:65) [windup-config-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.config.operation.GraphOperation.perform(GraphOperation.java:24) [windup-config-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.config.operation.Iteration.perform(Iteration.java:267) [windup-config-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.config.operation.Iteration.perform(Iteration.java:207) [windup-config-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.ocpsoft.rewrite.config.RuleBuilder.perform(RuleBuilder.java:168) [rewrite-api-3.0.0.Alpha9-jboss.jar:3.0.0.Alpha9-jboss]
at org.jboss.windup.config.RuleSubset.perform(RuleSubset.java:289) [windup-config-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.exec.WindupProcessorImpl.execute(WindupProcessorImpl.java:171) [windup-exec-impl-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_112]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_112]
at org.jboss.forge.furnace.proxy.ClassLoaderInterceptor$1.call(ClassLoaderInterceptor.java:87) [furnace-proxy-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) [furnace-api-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.forge.furnace.proxy.ClassLoaderInterceptor.invoke(ClassLoaderInterceptor.java:103) [furnace-proxy-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.windup.exec.WindupProcessorImpl_$$javassist_bb480353-01f6-4aa6-bf31-4cf116fd6d01.execute(WindupProcessorImpl$$_javassist_bb480353-01f6-4aa6-bf31-4cf116fd6d01.java) [windup-exec-impl-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_112]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_112]
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124) [furnace-proxy-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42) [furnace-api-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:97) [furnace-proxy-2.24.3.Final.jar:2.24.3.Final]
at org.jboss.windup.exec.WindupProcessor_$$javassist_a8655f7d-2662-4937-b9ec-84589599a993.execute(WindupProcessor$$_javassist_a8655f7d-2662-4937-b9ec-84589599a993.java) [windup-exec-api-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.bootstrap.commands.windup.RunWindupCommand.runWindup(RunWindupCommand.java:260) [windup-bootstrap-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.bootstrap.commands.windup.RunWindupCommand.execute(RunWindupCommand.java:73) [windup-bootstrap-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.bootstrap.Bootstrap.executePhase(Bootstrap.java:454) [windup-bootstrap-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.bootstrap.Bootstrap.run(Bootstrap.java:319) [windup-bootstrap-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
at org.jboss.windup.bootstrap.Bootstrap.main(Bootstrap.java:100) [windup-bootstrap-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
I replaced all occurrences of "Opcodes.ASM4" by "Opcodes.ASM5" and rebuilt the codebase ... but I am not sure if everything is being parsed properly. According to this article http://movingfulcrum.tumblr.com/post/80826553604/asm-framework-50-the-missing-migration-guide, there is more to do. The changes I did are located in org.jboss.windup.rules.apps.java.DependencyVisitor.
Can you have a look at it?
Without ASM 5, users are not able to decompile classes containing JDK 1.8 specific things.
best regards,
Marc
Attachments
Issue Links
- is duplicated by
-
WINDUP-1278 Migration code from ASM 4 to 5 for using java 8
- Dev Complete