Holger created ARIES-2070: ----------------------------- Summary: aries-proxy incompatible with asm 5 Key: ARIES-2070 URL: https://issues.apache.org/jira/browse/ARIES-2070 Project: Aries Issue Type: Bug Components: Proxy Affects Versions: proxy-impl-1.1.11 Reporter: Holger
Scenario: Our Apache Karaf 4.3.3 based application provides two versions of asm: 5.2 and 9.2.0 When starting karaf, the following exception occurs: {code:java} 2022-03-24 15:38:28,216 | ERROR | tures-3-thread-1 | o.a.a.b.c.BlueprintContainerImpl | 192 - org.apache.aries.blueprint | 1.10.3 | Unable to start container for blueprint bundle org.apache.karaf.shell.core/4.3.3 org.osgi.service.blueprint.container.ComponentDefinitionException: java.lang.NoClassDefFoundError: org/objectweb/asm/commons/AdviceAdapter at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:141) at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90) at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:810) at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:784) at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:765) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:699) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666) at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90) at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360) at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:190) at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:737) at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:433) at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298) at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:335) at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:288) at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:284) at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:274) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1180) at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730) at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485) at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) at org.apache.felix.framework.Felix.startBundle(Felix.java:2336) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1160) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1041) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/commons/AdviceAdapter at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2312) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClassParallel(BundleWiringImpl.java:2130) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2064) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1533) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:153) at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:97) at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:80) at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:77) at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:42) at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332) at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:125) ... 41 common frames omitted Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.commons.AdviceAdapter not found by org.apache.aries.proxy [209] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1565) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 57 common frames omitted{code} The class org/objectweb/asm/commons/AdviceAdapter does exist in asm 9.2.0 but not in 5.2. So we guess aries is using the old version. When looking into the proxy's manifest, we see it accepts Version 5. We changed it to 9 and the error disappeared. -- This message was sent by Atlassian Jira (v8.20.1#820001)