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)