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

Carsten Ziegeler commented on FELIX-3568:
-----------------------------------------

No, that's not possible :( Maybe we could detect that by looking at a compiled 
class file?
Could you try the latest version of the scr plugin from svn trunk and change 
line 68 in the ClassModifier class (scr generator module) to
final ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS  | 
ClassWriter.COMPUTE_FRAMES) {

and see if that fixes your problem with java 7 ?

I'll try this with Java 6 and report the error I get, maybe someone has an idea 
then what we need to change to get a single version for all java versions
                
> java.lang.VerifyError from bundles compiled with maven-scr-plugin  (java 7)
> ---------------------------------------------------------------------------
>
>                 Key: FELIX-3568
>                 URL: https://issues.apache.org/jira/browse/FELIX-3568
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven SCR Plugin, SCR Annotations
>    Affects Versions: maven-scr-plugin-1.7.4
>         Environment: maven-scr-plugin 1.7.4
> Java(TM) SE Runtime Environment (build 1.7.0_04-b21) (oracle/mac os)
> org.apache.felix.scr-1.6.0.jar
> Apache Karaf (2.2.7)
>            Reporter: John Hawksley
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr 
> generator 1.2.0
>
>
> A bundle compiled by javac 1.7.0, using maven-scr-plugin 1.7.4, seems to 
> raise a VerifyError when SCR attempts to reflect out the generated 
> constructors.
> java.lang.VerifyError: Expecting a stackmap frame at branch target 13 in 
> method 
> com.intergral.storm.pqs.internal.PersistentQueueComponent.unbindBus(Lorg/osgi/service/event/EventAdmin;)V
>  at offset 5
>       at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.7.0_04]
>       at 
> java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)[:1.7.0_04]
>       at java.lang.Class.getConstructor0(Class.java:2714)[:1.7.0_04]
>       at java.lang.Class.newInstance0(Class.java:343)[:1.7.0_04]
>       at java.lang.Class.newInstance(Class.java:325)[:1.7.0_04]
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:183)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:997)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:333)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:157)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.config.ConfiguredComponentHolder.enableComponents(ConfiguredComponentHolder.java:256)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.loadDescriptor(BundleComponentActivator.java:253)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:147)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:111)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:285)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:203)[55:org.apache.felix.scr:1.6.0]
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:807)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:729)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3761)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.Felix.startBundle(Felix.java:1787)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163)[org.apache.felix.framework-3.0.9.jar:]
>       at 
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)[org.apache.felix.framework-3.0.9.jar:]
>       at java.lang.Thread.run(Thread.java:722)[:1.7.0_04]
> Workaround: applying the XX:-UseSplitVerifier option to the VM seems to stop 
> this occurring.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to