Ok, there does appear to be a bug in Felix' resolve which rears its ugly
head when there is a combination of dependency cycles and optional
dependencies. In some cases, the intermediate results of the resolver
are incorrect and this leads to the NPE we are seeing. I have prototyped
a fix, but I still to investigate it more.
With my fix, I see this exception when starting the server with the
specified metro JARs:
SEVERE: java.lang.ClassNotFoundException:
org.glassfish.webservices.monitoring.Deployment109ProbeProvider
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1483)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:872)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.jvnet.hk2.osgiadapter.OSGiModuleImpl$2$1.run(OSGiModuleImpl.java:367)
Jul 23, 2009 4:10:02 PM
SEVERE: at java.security.AccessController.doPrivileged(Native Method)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.jvnet.hk2.osgiadapter.OSGiModuleImpl$2.loadClass(OSGiModuleImpl.java:363)
Jul 23, 2009 4:10:02 PM
SEVERE: at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.glassfish.admin.monitor.MonitoringBootstrap.addProvider(MonitoringBootstrap.java:180)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.glassfish.admin.monitor.MonitoringBootstrap.moduleStarted(MonitoringBootstrap.java:144)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.glassfish.admin.monitor.MonitoringBootstrap.postConstruct(MonitoringBootstrap.java:89)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:174)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:89)
Jul 23, 2009 4:10:02 PM
SEVERE: at java.security.AccessController.doPrivileged(Native Method)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:86)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:233)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:126)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.enterprise.module.bootstrap.Main.launch(Main.java:457)
Jul 23, 2009 4:10:02 PM
SEVERE: at
com.sun.enterprise.module.bootstrap.Main.launch(Main.java:401)
Jul 23, 2009 4:10:02 PM
SEVERE: at org.jvnet.hk2.osgiadapter.HK2Main.start(HK2Main.java:121)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:625)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.activateBundle(Felix.java:1699)
Jul 23, 2009 4:10:02 PM
SEVERE: at org.apache.felix.framework.Felix.startBundle(Felix.java:1621)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.BundleImpl.start(BundleImpl.java:890)
Jul 23, 2009 4:10:02 PM
SEVERE: at org.jvnet.hk2.osgimain.Main.start(Main.java:117)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:625)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.activateBundle(Felix.java:1699)
Jul 23, 2009 4:10:02 PM
SEVERE: at org.apache.felix.framework.Felix.startBundle(Felix.java:1621)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1076)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:263)
Jul 23, 2009 4:10:02 PM
SEVERE: at java.lang.Thread.run(Thread.java:637)
Jul 23, 2009 4:10:02 PM
SEVERE: Caused by: org.osgi.framework.BundleException: Unresolved
constraint in bundle com.sun.xml.ws [9]: package;
(package=com.sun.istack.logging)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.resolveBundle(Felix.java:3262)
Jul 23, 2009 4:10:02 PM
SEVERE: at
org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1476)
Jul 23, 2009 4:10:02 PM
SEVERE: ... 32 more
-> richard
On 7/23/09 10:44 AM, Richard S. Hall wrote:
> My initial discovery is that the webservices-osgi.jar bundle imports
> com.sun.istack.logging, but this cannot be found so the bundle cannot
> resolve. I am still looking into why this leads to an NPE...
>
> -> richard
>
> On 7/21/09 9:59 PM, Sreekanth wrote:
>> Hi Richard,
>>
>> Here are the steps to reproduce:
>>
>> 1. Get the latest promoted glassfish v3.
>> 2. Download the latest metro nightly
>> build(metro-2_0-installer-nightly.jar
>> <https://metro.dev.java.net/files/documents/7107/139453/metro-2_0-installer-nightly.jar>)
>>
>> from here[1].
>> 3. Run this command "java -jar metro-2_0-installer-nightly.jar" to
>> extract the contents of jar
>> 4. Now you will have a folder by name metro
>> 5. locate the folder "for_v3" in that directory.It contains the
>> latest osgi jar files for v3.
>> 6. Now replace the jaxb-osgi.jar and webservices-osgi.jar in
>> GFv3/modules with the jar files in metro/for_v3 folder.
>> 7. Also replace the webservices-api-osgi.jar in Gfv3/modules/endorsed
>> dir with the one in metro/for_v3 folder.
>> 8. Now start the domain.You will find the exception I reported.
>>
>> [1]
>> https://metro.dev.java.net/servlets/ProjectDocumentList?folderID=10314&expandFolder=10314&folderID=10314
>>
>>
>> Thanks,
>> Sreekanth
>>
>> Richard S. Hall wrote:
>>> That looks odd.
>>>
>>> I won't venture a guess at this point, but I can probably take a
>>> look at it if you can send me precise steps to reproduce.
>>>
>>> Thanks.
>>>
>>> -> richard
>>>
>>> On 7/21/09 1:29 AM, Sreekanth wrote:
>>>> Hi,
>>>>
>>>> Can some one tell me why the gfv3 domain doesn't come up after I
>>>> replaced the jar files :
>>>> modules/webservices-osgi.jar,modules/endorsed/webservices-api-osgi.jar
>>>> and modules/jaxb-osgi.jar in glassfish v3 with latest jar files
>>>> from metro nightly builds.(The intention is I want to test the
>>>> latest metro bits).
>>>>
>>>> I would like to know why replacement of latest osgi-jars doesn't work.
>>>>
>>>>
>>>>
>>>> sreekanth_at_sreekanth-laptop:/space/Sreekanth/servers/glassfishv3/glassfish$
>>>> asadmin start-domain domain1
>>>>
>>>> Domain (domain1) did not respond in 90 seconds. It means it is
>>>> still coming up
>>>> or it has failed to come up. Check server.log for details.
>>>> sreekanth_at_sreekanth-laptop:/space/Sreekanth/servers/glassfishv3/glassfish$
>>>> asadmin list-domains
>>>>
>>>> Name: domain1 Status: Not Running
>>>> Command list-domains executed successfully.
>>>>
>>>>
>>>> Exception:
>>>> ==========
>>>> [#|2009-07-21T10:46:39.121+0530|INFO|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|ERROR:
>>>> Error starting
>>>> file:/space/Sreekanth/servers/glassfishv3/glassfish/modules/osgi-main.jar
>>>> (org.osgi.framework.BundleException: Activator start error in
>>>> bundle com.sun.enterprise.osgi-adapter [54].)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|java.lang.NullPointerException|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.searchpolicy.Resolver.populateWireMap(Resolver.java:1484)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.searchpolicy.Resolver.populateWireMap(Resolver.java:1514)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.searchpolicy.Resolver.populateWireMap(Resolver.java:1514)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.searchpolicy.Resolver.populateWireMap(Resolver.java:1514)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.122+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.searchpolicy.Resolver.resolve(Resolver.java:104)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:3733)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3105)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1441)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:779)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.jvnet.hk2.osgiadapter.OSGiModuleImpl.start(OSGiModuleImpl.java:145)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.jvnet.hk2.osgiadapter.OSGiModuleImpl$1$1$1.loadClass(OSGiModuleImpl.java:309)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> com.sun.hk2.component.LazyInhabitant.fetch(LazyInhabitant.java:91)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> com.sun.hk2.component.LazyInhabitant.type(LazyInhabitant.java:78)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.123+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:228)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:126)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at com.sun.enterprise.module.bootstrap.Main.launch(Main.java:442)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at com.sun.enterprise.module.bootstrap.Main.launch(Main.java:386)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.jvnet.hk2.osgiadapter.HK2Main.start(HK2Main.java:121)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1461)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:779)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.jvnet.hk2.osgimain.Main.start(Main.java:104)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.124+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.125+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1461)|#]
>>>>
>>>> [#|2009-07-21T10:46:39.125+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:984)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.125+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at
>>>> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:263)|#]
>>>>
>>>>
>>>> [#|2009-07-21T10:46:39.125+0530|SEVERE|glassfish|null|_ThreadID=11;_ThreadName=Thread-1;|
>>>> at java.lang.Thread.run(Thread.java:619)|#]
>>>>
>>>> Thanks,
>>>> Sreekanth
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>