4 Replies Latest reply on Jun 15, 2010 9:38 AM by alesj

    DynamicImport-Package takes presendence over embedded classes

    thomas.diesler

      Working on https://jira.jboss.org/browse/JBOSGI-323 I see the following when BundleA, which has a DynamicImport-Package: *, tries to load B.class from BundleB

       

       

      2010-06-15 13:42:29,835 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} unlock Thread[main,5,main] holding=1
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} loadClass org.jboss.test.osgi.classloader.support.b.B resolve=false
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} aquireLockFairly Thread[main,5,main]
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} aquiredLock Thread[main,5,main] holding=1
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} load from domain org.jboss.test.osgi.classloader.support.b.B domain=OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain}
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} findLoader org/jboss/test/osgi/classloader/support/b/B.class classLoader=OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} allExports=false findInParent=true
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} org/jboss/test/osgi/classloader/support/b/B.class matches parent beforeFilter=<EVERYTHING>
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} load from parent org/jboss/test/osgi/classloader/support/b/B.class parent=ClassLoaderDomain@6a40afb9{DefaultDomain}
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} findLoader org/jboss/test/osgi/classloader/support/b/B.class classLoader=null allExports=true findInParent=true
      2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent beforeFilter=[java], OSGI_CORE, [javax.imageio, javax.imageio.stream, javax.management, javax.management.loading, javax.management.modelmbean, javax.management.monitor, javax.management.openmbean, javax.management.relation, javax.management.remote, javax.management.remote.rmi, javax.management.timer, javax.naming, javax.naming.event, javax.naming.spi, javax.net, javax.net.ssl, javax.security.cert, javax.xml.datatype, javax.xml.namespace, javax.xml.parsers, javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stream, javax.xml.validation, org.apache.log4j, org.jboss.beans.metadata.plugins.builder, org.jboss.beans.metadata.plugins, org.jboss.beans.metadata.spi.builder, org.jboss.beans.metadata.spi, org.jboss.dependency.spi, org.jboss.kernel.spi.dependency, org.jboss.logging, org.jboss.osgi.deployment.deployer, org.jboss.osgi.deployment.interceptor, org.jboss.osgi.spi.capability, org.jboss.osgi.spi.framework, org.jboss.osgi.spi.service, org.jboss.osgi.spi.util, org.jboss.osgi.spi, org.jboss.osgi.testing, org.osgi.framework, org.osgi.framework.hooks, org.osgi.framework.hooks.service, org.osgi.framework.launch, org.osgi.service.condpermadmin, org.osgi.service.packageadmin, org.osgi.service.permissionadmin, org.osgi.service.startlevel, org.osgi.service.url, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.events, org.w3c.dom.ls, org.w3c.dom.ranges, org.w3c.dom.traversal, org.w3c.dom.views, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers]
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from all exports of package org.jboss.test.osgi.classloader.support.b null
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent afterFilter=<NOTHING>
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} not loading org/jboss/test/osgi/classloader/support/b/B.class from all exports
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} not loading org/jboss/test/osgi/classloader/support/b/B.class from imports it has no delegates
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from requesting OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0}
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} get resource locally org/jboss/test/osgi/classloader/support/b/B.class
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} resource not found locally org/jboss/test/osgi/classloader/support/b/B.class
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from import WildcardDelegateLoader@5ee04fd{delegate=OSGiClassLoaderPolicy@3458213c{jbosgi323-bundleA-0.0.0}} for OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0}
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.filter.FilteredDelegateLoader] WildcardDelegateLoader@5ee04fd{delegate=OSGiClassLoaderPolicy@3458213c{jbosgi323-bundleA-0.0.0}} org/jboss/test/osgi/classloader/support/b/B.class matches resource filter=<EVERYTHING>
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloading.spi.dependency.ClassLoadingSpace] OSGiModule jbosgi323-bundleA:0.0.0 resolving org.jboss.classloading.spi.dependency.ClassLoadingSpace@43da850
      2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent afterFilter=<NOTHING>
      2010-06-15 13:42:29,844 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} unlock Thread[main,5,main] holding=1
      2010-06-15 13:42:29,844 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} class not found org.jboss.test.osgi.classloader.support.b.B
      2010-06-15 13:42:29,845 ERROR [org.jboss.osgi.testing.OSGiTestHelper] Unexpected ClassNotFoundException for: jbosgi323-bundleA loads org.jboss.test.osgi.classloader.support.b.B
      java.lang.ClassNotFoundException: org.jboss.test.osgi.classloader.support.b.B from OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0}
          at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
          at org.jboss.osgi.framework.bundle.OSGiBundleState.loadClass(OSGiBundleState.java:190)
          at org.jboss.osgi.framework.bundle.OSGiBundleWrapper.loadClass(OSGiBundleWrapper.java:171)
          at org.jboss.osgi.testing.OSGiTestHelper.assertLoadClass(OSGiTestHelper.java:278)
          at org.jboss.osgi.testing.OSGiTest.assertLoadClass(OSGiTest.java:213)
          at org.jboss.osgi.testing.OSGiFrameworkTest.assertLoadClass(OSGiFrameworkTest.java:193)
          at org.jboss.test.osgi.core.jbosgi323.OSGi323TestCase.testDynamicImportWithWildcard(OSGi323TestCase.java:196)
      
      

       

      This used to work with jboss-cl-2.0.0.Alpha5

       

      Could you quickly explain how the refactoring around dynamic imports and in particular about WildcardDelegateLoader is suposed to work?

       

      cheers