Hi David, The weaving proxying works by adding a small amount of proxy code to any class that gets loaded. In this case the proxy code is unable to properly weave org.apache.sshd.common.keyprovider.FileKeyPairProvider because it can't find whether Exception and PEMReader have any common supertypes. There are a couple of options here:
Fix the OSGiFriendlyClassWriter so it works across bundlesChange the OSGiFriendlyClassWriter thrown exception so that it is an UnableToProxyException wrappered in a RuntimeException. This will prevent the WeavingHook from failing the class load. (See the try/catch in ProxyWeavingHook for why). Change the OSGiFriendlyClassWriter to return Object in these situations I have a feeling that option 2 is right for you in the short term, I will try to get option 1 working in the near future. Regards, Tim > Subject: Re: Problem with proxy 0.4-SNAPSHOT? > From: [email protected] > Date: Mon, 23 May 2011 11:53:36 -0700 > To: [email protected] > > Hi Timothy, > > I poked around using PackageAdmin and there don't appear to be any bundles > exporting org.bouncycastle.openssl when this exception occurs. I'm kind of > wondering why anyone would care what the common superclass of Exception and > PEMReader was. > > Is there any description of how this weaving proxying works and which classes > it applies to? > > Looking at the stack trace a bit more I wonder if this problem is entirely > generated by the weaving. The karaf blueprint plan involved has this: > > <bean id="keyPairProvider" > class="org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider"> > <property name="path" value="${hostKey}"/> > </bean> > > The user code in the stack trace is: > > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.static_init_adba91ec_bc37_40fd_b525_04d6fddc476d0(AbstractGeneratorHostKeyProvider.java:44) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.<clinit>(AbstractGeneratorHostKeyProvider.java) > > > > > AbstractGeneratorHostKeyProvider is the superclass of > SimpleGeneratorHostKeyProvider and neither mention PEMReader. The other > subclass of AbstractGeneratorHostKeyProvider is PEMGeneratorHostKeyProvider > which does use PEMReader. Looking at the class file for > AbstractGeneratorHostKeyProvider in emacs I don't see PEMReader. So I would > guess that the reference to PEMReader might have been added by the weaving. > > I don't have the time to pursue this further, and it looks like it could > involve a lot of work to make reliable. I think I will have to try patching > application 0.3 so it works. > > thanks > david jencks > > > > On May 23, 2011, at 1:37 AM, Timothy Ward wrote: > > > > > Hi David, > > > > In order to support weaving, and to dramatically improve proxying > > performance, it was necessary to change the proxying API away from one that > > required you to use reflection. This was a breaking change for all clients > > but has improved proxy performance by nearly ten times, and made the > > implementation much more flexible. As a result, yes, you do need to upgrade > > every component to use the new proxy code. > > > > I'm afraid I'm out of the office for a week and can't put a fix in, but I > > would look at using the Bundle Wiring API to follow package imports and > > locate the correct bundle to load the class resource from. I can look at > > this next week if you like. > > > > Regards, > > > > Tim > > > > > > > >> From: [email protected] > >> Subject: Problem with proxy 0.4-SNAPSHOT? > >> Date: Mon, 23 May 2011 00:01:21 -0700 > >> To: [email protected] > >> > >> It appears that to use application 3.1-SNAPSHOT you need to upgrade all > >> the other aries components. Is this really the case or is there > >> over-enthusiastic lets-use-the-newest-version going on? > >> > >> I've had to upgrade to proxy 0.4-SNAPSHOT and am getting this error: > >> > >> geronimo> 2011-05-22 22:24:12,684 ERROR [ProxyWeavingHook] There was a > >> serious error trying to weave the class > >> org.apache.sshd.common.keyprovider.FileKeyPairProvider. See the associated > >> exception for more information. > >> java.lang.RuntimeException: The class null and > >> org/bouncycastle/openssl/PEMReader do not have a common super class. > >> at > >> org.apache.aries.proxy.impl.weaving.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:112) > >> at org.objectweb.asm.ClassWriter.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) > >> at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) > >> at org.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(Unknown > >> Source) > >> at org.objectweb.asm.MethodAdapter.visitEnd(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at > >> org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52) > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.static_init_adba91ec_bc37_40fd_b525_04d6fddc476d0(AbstractGeneratorHostKeyProvider.java:44) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.<clinit>(AbstractGeneratorHostKeyProvider.java) > >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > >> Method) > >> at > >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > >> at > >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > >> at > >> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:270) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79) > >> at > >> org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:220) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:154) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:641) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:332) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228) > >> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >> at java.lang.Thread.run(Thread.java:680) > >> 2011-05-22 22:24:12,703 ERROR [BlueprintContainerImpl] Unable to start > >> blueprint container for bundle org.apache.karaf.shell.ssh > >> org.osgi.service.blueprint.container.ComponentDefinitionException: Error > >> when instanciating bean keyPairProvider of class class > >> org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:271) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79) > >> at > >> org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:220) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:154) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:641) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:332) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228) > >> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >> at java.lang.Thread.run(Thread.java:680) > >> Caused by: java.lang.ClassFormatError: Unexpected error from weaving hook. > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:74) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.static_init_adba91ec_bc37_40fd_b525_04d6fddc476d0(AbstractGeneratorHostKeyProvider.java:44) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.<clinit>(AbstractGeneratorHostKeyProvider.java) > >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > >> Method) > >> at > >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > >> at > >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > >> at > >> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:270) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269) > >> ... 25 more > >> Caused by: org.osgi.framework.hooks.weaving.WeavingException: There was a > >> serious error trying to weave the class > >> org.apache.sshd.common.keyprovider.FileKeyPairProvider. See the associated > >> exception for more information. > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:75) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68) > >> ... 46 more > >> Caused by: java.lang.RuntimeException: The class null and > >> org/bouncycastle/openssl/PEMReader do not have a common super class. > >> at > >> org.apache.aries.proxy.impl.weaving.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:112) > >> at org.objectweb.asm.ClassWriter.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) > >> at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) > >> at org.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(Unknown > >> Source) > >> at org.objectweb.asm.MethodAdapter.visitEnd(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at > >> org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52) > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62) > >> ... 51 more > >> > >> After fixing the code to show the original class names I get: > >> > >> java.lang.RuntimeException: The class java/lang/Exception and > >> org/bouncycastle/openssl/PEMReader do not have a common super class. > >> at > >> org.apache.aries.proxy.impl.weaving.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:113) > >> at org.objectweb.asm.ClassWriter.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) > >> at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) > >> at org.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(Unknown > >> Source) > >> at org.objectweb.asm.MethodAdapter.visitEnd(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at > >> org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52) > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.static_init_39c85b92_f2db_471a_9068_6cf8deb0066d0(AbstractGeneratorHostKeyProvider.java:44) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.<clinit>(AbstractGeneratorHostKeyProvider.java) > >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > >> Method) > >> at > >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > >> at > >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > >> at > >> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:270) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79) > >> at > >> org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:220) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:154) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:641) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:332) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228) > >> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >> at java.lang.Thread.run(Thread.java:680) > >> 2011-05-22 23:53:41,008 ERROR [BlueprintContainerImpl] Unable to start > >> blueprint container for bundle org.apache.karaf.shell.ssh > >> org.osgi.service.blueprint.container.ComponentDefinitionException: Error > >> when instanciating bean keyPairProvider of class class > >> org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:271) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:71) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:79) > >> at > >> org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:813) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:787) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:768) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:722) > >> at > >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:98) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:220) > >> at > >> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:154) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:641) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:332) > >> at > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:228) > >> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >> at java.lang.Thread.run(Thread.java:680) > >> Caused by: java.lang.ClassFormatError: Unexpected error from weaving hook. > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:74) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) > >> at > >> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) > >> at > >> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) > >> at > >> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.static_init_39c85b92_f2db_471a_9068_6cf8deb0066d0(AbstractGeneratorHostKeyProvider.java:44) > >> at > >> org.apache.sshd.server.keyprovider.AbstractGeneratorHostKeyProvider.<clinit>(AbstractGeneratorHostKeyProvider.java) > >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > >> Method) > >> at > >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > >> at > >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > >> at > >> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:270) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842) > >> at > >> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269) > >> ... 25 more > >> Caused by: org.osgi.framework.hooks.weaving.WeavingException: There was a > >> serious error trying to weave the class > >> org.apache.sshd.common.keyprovider.FileKeyPairProvider. See the associated > >> exception for more information. > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:75) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239) > >> at > >> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154) > >> at > >> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68) > >> ... 46 more > >> Caused by: java.lang.RuntimeException: The class java/lang/Exception and > >> org/bouncycastle/openssl/PEMReader do not have a common super class. > >> at > >> org.apache.aries.proxy.impl.weaving.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:113) > >> at org.objectweb.asm.ClassWriter.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.Frame.a(Unknown Source) > >> at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) > >> at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) > >> at org.objectweb.asm.commons.JSRInlinerAdapter.visitEnd(Unknown > >> Source) > >> at org.objectweb.asm.MethodAdapter.visitEnd(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at org.objectweb.asm.ClassReader.accept(Unknown Source) > >> at > >> org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52) > >> at > >> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:62) > >> ... 51 more > >> > >> I'd guess that the situation hinted at in the javadoc is occurring: > >> > >> /** > >> * We provide an implementation that doesn't cause class loads to occur. > >> It may > >> * not be sufficient because it expects to find the common parent using a > >> single > >> * classloader, though in fact the common parent may only be loadable by > >> another > >> * bundle from which an intermediate class is loaded > >> */ > >> > >> > >> I'm not sure how to proceed here. Any suggestions? > >> > >> thanks > >> david jencks > >> > > >
