[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Commented] (ARIES-1219) Weaving of Aries SPI Fly bundle produces RuntimeException: JSR/RET are not supported with computeFrames option

    [ https://issues.apache.org/jira/browse/ARIES-1219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16577051#comment-16577051 ] 

Tuomas Kiviaho commented on ARIES-1219:

I concur that the inline adapter is the way to go. I worked around this with the following patch in 1.0.8 version

public MethodVisitor visitMethod(int access, String name, String desc,
 String signature, String[] exceptions) {
 MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions);
+ mv = new JSRInlinerAdapter(mv,access,name,desc,signature,exceptions);
 return new TCCLSetterMethodVisitor(mv, access, name, desc);

> Weaving of Aries SPI Fly bundle produces RuntimeException: JSR/RET are not supported with computeFrames option
> --------------------------------------------------------------------------------------------------------------
>                 Key: ARIES-1219
>                 URL: https://issues.apache.org/jira/browse/ARIES-1219
>             Project: Aries
>          Issue Type: Question
>         Environment: Apache Karaf 3.0.1
>            Reporter: Eleni Giannakopoulou
>            Priority: Major
>              Labels: Fly, JSR/RET, Karaf, SPI
> Trying to integrate jBPM6 in Apache Karaf 3.0.1, we came across with ServiceLoader.load() issues and for that reason we have used dynamic weaving of Aries SPI Fly.
> While some classloading of jBPM classes, we get the following exception:
> java.lang.ClassFormatError: Weaving hook failed.
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2074)
> 	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1501)
> 	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_45]
> ...
> Caused by: java.lang.RuntimeException: JSR/RET are not supported with computeFrames option
> 	at org.objectweb.asm.Frame.a(Unknown Source)
> 	at org.objectweb.asm.MethodWriter.visitJumpInsn(Unknown Source)
> 	at org.objectweb.asm.MethodVisitor.visitJumpInsn(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.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61)
> 	at org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1127)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2057)
> It seems that there is a problem with StackMap tables used in jBPM6. jBPM6 has been built using JDK 1.6.0_45 and the JVM runs 1.7.0_45.
> Any suggestions would be appreciated as this is a blocking issue for us.
> Thank you in advance,
> Eleni.

This message was sent by Atlassian JIRA