You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Holger (Jira)" <ji...@apache.org> on 2022/03/24 15:06:00 UTC

[jira] [Created] (ARIES-2070) aries-proxy incompatible with asm 5

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)