dev@shoal.java.net

Re: [Shoal-Dev] Re: [jxta-dev] About jxta-jxse's "Could not locate World PeerGroup Module Implementation" in IBM JDK1.6

From: Shreedhar Ganapathy <Shreedhar.Ganapathy_at_Sun.COM>
Date: Tue, 25 Aug 2009 20:08:28 -0700

Thanks very much Bongjae. Much appreciated.
This has become a showstopper for GlassFish support for AIX with IBM JDK 6
We are hoping a solution or workaround can be found asap.

Bongjae Chang wrote:
> Hi Jerome,
>
> Jerome wrote:
>
>> The code does not contain an .isCompatible() method for StdPeerGroup
>> anymore. Therefore, I am wondering whether this issue would still occur
>> with the most recent code.
>>
>
> I see. Today, I updated the jxta-jxse from current svn and I tried to test it again experimentally.
> But it seems that this issue still occurred.
>
> Here is the log( I inserted Thread.dumpStack() code for debugging in IBM JDK )
> ---
> java.lang.Throwable
> at java.lang.Thread.dumpStack(Thread.java:417)
> at net.jxta.impl.peergroup.CompatibilityUtils.isCompatible(CompatibilityUtils.java:196)
> at net.jxta.impl.peergroup.GenericPeerGroup$1.compatible(GenericPeerGroup.java:148)
> at net.jxta.impl.loader.RefJxtaLoader.searchCompats(RefJxtaLoader.java:548)
> at net.jxta.impl.loader.RefJxtaLoader.findClass(RefJxtaLoader.java:318)
> at net.jxta.impl.loader.RefJxtaLoader.loadClass(RefJxtaLoader.java:371)
> at net.jxta.impl.loader.RefJxtaLoader.findModuleImplAdvertisement(RefJxtaLoader.java:482)
> at net.jxta.peergroup.WorldPeerGroupFactory.getDefaultWorldPeerGroupClass(WorldPeerGroupFact
> ory.java:238)
> at net.jxta.peergroup.WorldPeerGroupFactory.<init>(WorldPeerGroupFactory.java:178)
> at com.sun.enterprise.jxtamgmt.NetworkManager.initWPGF(NetworkManager.java:634)
> at com.sun.enterprise.jxtamgmt.NetworkManager.<init>(NetworkManager.java:216)
> at com.sun.enterprise.jxtamgmt.ClusterManager.<init>(ClusterManager.java:138)
> at com.sun.enterprise.ee.cms.impl.jxta.GroupCommunicationProviderImpl.initializeGroupCommuni
> cationProvider(GroupCommunicationProviderImpl.java:154)
> at com.sun.enterprise.ee.cms.impl.jxta.GMSContext.join(GMSContext.java:145)
> at com.sun.enterprise.ee.cms.impl.common.GroupManagementServiceImpl.join(GroupManagementServ
> iceImpl.java:367)
> at com.sun.enterprise.ee.cms.tests.ApplicationServer.startGMS(ApplicationServer.java:166)
> at com.sun.enterprise.ee.cms.tests.ApplicationServer.run(ApplicationServer.java:117)
> at java.lang.Thread.run(Thread.java:735)
> [#|2009-08-26T10:22:16.625+0900|SEVERE|Shoal|ShoalLogger|_ThreadID=1;_ThreadName=ApplicationServer;C
> lassName=NetworkManager;MethodName=<init>;|Could not locate World PeerGroup Module Implementation.
> net.jxta.exception.PeerGroupException: Could not locate World PeerGroup Module Implementation.
> at net.jxta.peergroup.WorldPeerGroupFactory.getDefaultWorldPeerGroupClass(WorldPeerGroupFact
> ory.java:241)
> at net.jxta.peergroup.WorldPeerGroupFactory.<init>(WorldPeerGroupFactory.java:178)
> at com.sun.enterprise.jxtamgmt.NetworkManager.initWPGF(NetworkManager.java:634)
> at com.sun.enterprise.jxtamgmt.NetworkManager.<init>(NetworkManager.java:216)
> at com.sun.enterprise.jxtamgmt.ClusterManager.<init>(ClusterManager.java:138)
> at com.sun.enterprise.ee.cms.impl.jxta.GroupCommunicationProviderImpl.initializeGroupCommuni
> cationProvider(GroupCommunicationProviderImpl.java:154)
> at com.sun.enterprise.ee.cms.impl.jxta.GMSContext.join(GMSContext.java:145)
> at com.sun.enterprise.ee.cms.impl.common.GroupManagementServiceImpl.join(GroupManagementServ
> iceImpl.java:367)
> at com.sun.enterprise.ee.cms.tests.ApplicationServer.startGMS(ApplicationServer.java:166)
> at com.sun.enterprise.ee.cms.tests.ApplicationServer.run(ApplicationServer.java:117)
> at java.lang.Thread.run(Thread.java:735)
> ---
>
> As you see above, CompatibilityUtils.isCompatible() was called finally.
>
> Jerome wrote:
>
>> How does IBM's JDK provide for version information? Because if a JDK
>> does not provide that information, JXTA/JXSE cannot provide a solution too
>>
>
> I would like to know the way, too. :)
>
> It seems that maybe IBM JDK 6 has a incorrect version info.(https://shoal.dev.java.net/issues/show_bug.cgi?id=91)
>
> Jerome wrote:
>
>> I have opened an issue to better document and test CompatibilityUtils
>> (https://jxta-jxse.dev.java.net/issues/show_bug.cgi?id=267).
>>
>
> Thank you!
>
> Jerome wrote:
>
>> If you put your findings about how IBM's JDK provides for version, that would help
>> finding the solution.
>>
>
> Okay.
>
> Thanks!
>
> PS) I added the alias of Shoal dev mailing list for sharing this issue.
> --
> Bongjae Chang
>
>
> ----- Original Message -----
> From: "Jérôme Verstrynge" <jverstry_at_gmail.com>
> To: <dev_at_jxta.dev.java.net>
> Sent: Saturday, August 22, 2009 7:16 PM
> Subject: Re: [jxta-dev] About jxta-jxse's "Could not locate World PeerGroup Module Implementation" in IBM JDK1.6
>
>
>
>> Hi Bongjae,
>>
>> See my comments below.
>>
>> Bongjae Chang wrote:
>>
>>> Hi all,
>>>
>>> This is very old mail.
>>>
>>> But, unfortunately I couldn't receive any response about this, so I
>>> would like to share this issue again.
>>>
>>> I also think that you can see the same problem from
>>> https://glassfish.dev.java.net/issues/show_bug.cgi?id=9141.
>>>
>>> Any thoughts?
>>>
>>> PS) could I file this issue with the issue tracker in
>>> jxta-jxse.dev.java.net?
>>>
>>> --
>>> Bongjae Chang
>>>
>>>
>>>
>>> ----- Original Message -----
>>> *From:* Bongjae Chang <mailto:carryel_at_korea.com>
>>> *To:* dev_at_jxta.dev.java.net <mailto:dev_at_jxta.dev.java.net>
>>> *Sent:* Tuesday, March 31, 2009 1:39 PM
>>> *Subject:* [jxta-dev] About jxta-jxse's "Could not locate World
>>> PeerGroup Module Implementation" in IBM JDK1.6
>>>
>>> Hi.
>>>
>>> I am a user of Shoal community.
>>>
>>> When I tried to test current Shoal version in *IBM JDK 1.6*, GMS
>>> failed to join the group in IBM JDK 1.6.
>>>
>>> So I would like to inform jxta's community of this problem because
>>> I think that this concerns jxta-jxse. (As you know, Shoal is using
>>> jxta.jar.)
>>>
>>> Here is error log.
>>> ---------------------
>>> 2009. 3. 21 오후 6:21:17 com.sun.enterprise.jxtamgmt.JxtaUtil
>>> configureJxtaLogging
>>> CONFIG: gms configureJxtaLogging: set jxta logging to default of
>>> SEVERE
>>> 2009. 3. 21 오후 6:21:18
>>> com.sun.enterprise.jxtamgmt.NetworkManager initWPGF
>>> CONFIG: initWPGF
>>> storeHome=/home/bluewolf/project/jeus7trunk/target/jeus/domains/dvt/data/gms/dvt
>>>
>>> 2009. 3. 21 오후 6:21:18
>>> com.sun.enterprise.jxtamgmt.NetworkManager <init>
>>> *SEVERE: Could not locate World PeerGroup Module Implementation.
>>> *Throwable occurred: net.jxta.exception.PeerGroupException: Could
>>> not locate World PeerGroup Module Implementation.
>>> at
>>> net.jxta.peergroup.WorldPeerGroupFactory.getDefaultWorldPeerGroupClass(WorldPeerGroupFactory.java:244)
>>>
>>> at
>>> net.jxta.peergroup.WorldPeerGroupFactory.<init>(WorldPeerGroupFactory.java:178)
>>>
>>> at
>>> com.sun.enterprise.jxtamgmt.NetworkManager.initWPGF(NetworkManager.java:623)
>>>
>>> at
>>> com.sun.enterprise.jxtamgmt.NetworkManager.<init>(NetworkManager.java:213)
>>>
>>> at
>>> com.sun.enterprise.jxtamgmt.ClusterManager.<init>(ClusterManager.java:133)
>>>
>>> at
>>> com.sun.enterprise.ee.cms.impl.jxta.GroupCommunicationProviderImpl.initializeGroupCommunicationProvider(GroupCommunicationProviderImpl.java:138)
>>>
>>> at
>>> com.sun.enterprise.ee.cms.impl.jxta.GMSContext.join(GMSContext.java:123)
>>>
>>> at
>>> com.sun.enterprise.ee.cms.impl.common.GroupManagementServiceImpl.join(GroupManagementServiceImpl.java:347)
>>>
>>> ...
>>> ---------------------
>>>
>>> I could know that "Could not locate World PeerGroup Module
>>> Implementation" message was concerned with JDK version and jxta
>>> platform when I reviewed [Shoal-Users] mailing list.
>>>
>>> So I tried to test jxta.jar simply.
>>> ---------------------
>>> *bash-3.00$ uname -a
>>> AIX tmaxi4 3 5 00CD048C4C00*
>>>
>>>
>>> *bash-3.00$ /usr/java6/bin/java -version*
>>> java version* "1.6.0"
>>> *Java(TM) SE Runtime Environment (build pap3260sr2-20080818_01(SR2))
>>> *IBM* J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 AIX ppc-32
>>> jvmap3260-20080816_22093 (JIT enabled, AOT enabled)
>>> J9VM - 20080816_022093_bHdSMr
>>> JIT - r9_20080721_1330ifx2
>>> GC - 20080724_AA)
>>> JCL - 20080808_02
>>>
>>>
>>> *bash-3.00$ /usr/java6/bin/java -jar jxta.jar*
>>> Starting the JXTA platform in mode : EDGE
>>> 2009. 3. 31 오후 1:09:28 net.jxta.platform.NetworkManager configure
>>> INFO: Created new configuration. mode = EDGE
>>> 2009. 3. 31 오후 1:09:28 net.jxta.platform.NetworkManager startNetwork
>>> INFO: Starting JXTA Network! MODE = EDGE, HOME =
>>> file:/data1/all4you/carryel_temp/.cache/BootEdge/
>>> 2009. 3. 31 오후 1:09:28 net.jxta.impl.peergroup.StdPeerGroup
>>> isCompatible
>>> WARNING: Failure handling compatibility statement
>>> *Throwable occurred: java.lang.NumberFormatException: Empty
>>> version string
>>> * at java.lang.Package.isCompatibleWith(Package.java:210)
>>> at
>>> net.jxta.impl.peergroup.StdPeerGroup.isCompatible(StdPeerGroup.java:414)
>>>
>>>
>> The code does not contain an .isCompatible() method for StdPeerGroup
>> anymore. Therefore, I am wondering whether this issue would still occur
>> with the most recent code.
>>
>>> at
>>> net.jxta.impl.peergroup.GenericPeerGroup$1.compatible(GenericPeerGroup.java:131)
>>> at
>>> net.jxta.impl.loader.RefJxtaLoader.findClass(RefJxtaLoader.java:254)
>>> at
>>> net.jxta.impl.loader.RefJxtaLoader.findModuleImplAdvertisement(RefJxtaLoader.java:350)
>>> at
>>> net.jxta.peergroup.WorldPeerGroupFactory.getDefaultWorldPeerGroupClass(WorldPeerGroupFactory.java:241)
>>> at
>>> net.jxta.peergroup.WorldPeerGroupFactory.<init>(WorldPeerGroupFactory.java:178)
>>> at
>>> net.jxta.peergroup.NetPeerGroupFactory.<init>(NetPeerGroupFactory.java:204)
>>> at
>>> net.jxta.platform.NetworkManager.startNetwork(NetworkManager.java:410)
>>> at net.jxta.impl.peergroup.Boot.main(Boot.java:139)
>>> Uncaught Throwable caught by 'main':
>>> *net.jxta.exception.PeerGroupException: Could not locate World
>>> PeerGroup Module Implementation.
>>> * at
>>> net.jxta.peergroup.WorldPeerGroupFactory.getDefaultWorldPeerGroupClass(WorldPeerGroupFactory.java:244)
>>> at
>>> net.jxta.peergroup.WorldPeerGroupFactory.<init>(WorldPeerGroupFactory.java:178)
>>> at
>>> net.jxta.peergroup.NetPeerGroupFactory.<init>(NetPeerGroupFactory.java:204)
>>> at
>>> net.jxta.platform.NetworkManager.startNetwork(NetworkManager.java:410)
>>> at net.jxta.impl.peergroup.Boot.main(Boot.java:139)
>>> ---------------------
>>>
>>> I could know that this error was related to
>>> Package.isCompatibleWith() method.
>>>
>>> Here is my test code.
>>>
>>> ---------------------
>>> Package javaLangPackage = Package.getPackage( "java.lang" );
>>> System.out.println( javaLangPackage.getSpecificationVersion() );
>>> ---------------------
>>>
>>> In Sun JDK6
>>> ---------------------
>>> *1.6*
>>> ---------------------
>>>
>>> In IBM JDK6
>>> ---------------------
>>> *null*
>>> ---------------------
>>>
>>> So Package#isCompatibleWith() can return
>>> "java.lang.NumberFormatException: Empty version string" exception
>>> in IBM JDK6 because specVersion can be null.
>>>
>>> In my opinion, I think that because some JDKs can return a empty
>>> version string or null, JXTA had better make use of another
>>> compatible version checking regardless of
>>> java.lang.Package#isCompatilbe() method.
>>>
>>>
>> How does IBM's JDK provide for version information? Because if a JDK
>> does not provide that information, JXTA/JXSE cannot provide a solution too.
>>
>>
>>>
>>> And I think that JXTA should be verified in IBM JDK6. Actually, I
>>> don't know whether JXTA has tested in IBM JDK. :-)
>>>
>>>
>> I don't know whether it has been tested in the past. For the future,
>> volunteers are welcome !!!
>>
>>>
>>> Unfortunately, I didn't have found an workaround. At this case, do
>>> you have any solution or work-around?
>>>
>>> If you confirm this error, could I file an issue with the issue
>>> tracker in jxta-jxse.dev.java.net?
>>>
>>>
>> I have opened an issue to better document and test CompatibilityUtils
>> (https://jxta-jxse.dev.java.net/issues/show_bug.cgi?id=267). If you put
>> your findings about how IBM's JDK provides for version, that would help
>> finding the solution.
>>
>>
>>>
>>> I think current jxta-jxse-svn's source also has same problem.
>>>
>>> PS)
>>> - jxta.jar works well in Sun JDK1.5, Sun JDK1.6 and IBM JDK1.5.
>>> - I tested this case in Windows, Linux and AIX. All platform
>>> returned same error when I used IBM JDK1.6.
>>> - This is MANIFEST.MF in jxta.jar
>>> * Manifest-Version: 1.0
>>> Ant-Version: Apache Ant 1.6.5
>>> Created-By: 1.5.0_16-133 (Apple Inc.)
>>> Built-By: jf39279
>>> Built-At: 20090327
>>> Specification-Title: JXTA Protocols
>>> Specification-Version: 2.0
>>> Specification-Vendor: JXTA Organization
>>> Main-Class: net.jxta.impl.peergroup.Boot*
>>>
>>> Thanks.
>>>
>>> --
>>> Bongjae Chang
>>>
>>>
>> Thanks,
>>
>> J. (AdamMan71)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_jxta.dev.java.net
>> For additional commands, e-mail: dev-help_at_jxta.dev.java.net
>>
>>
>>
>>
>>