dev@shoal.java.net

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

From: Shreedhar Ganapathy <Shreedhar.Ganapathy_at_Sun.COM>
Date: Mon, 17 Aug 2009 15:30:26 -0700

Hi Bongjae
Just following up from this old thread as this issue is now seen in
GlassFish v2.1.1 testing with IBM JDK 5
https://glassfish.dev.java.net/issues/show_bug.cgi?id=9141


Did you get any response from Jxta community for this issue you filed as
mentioned below in your email ?
Could you share the issue number in Jxta community issue tracker ?

Thanks
Shreedhar

Shreedhar Ganapathy wrote:
> HI Bongjae
>
> Bongjae Chang wrote:
>> Hi Shreedhar.
>> I'msorry for this late reply.
>> If JDK doesn't have a version string, GMS can't join the group
>> because JXTA fails toinitialize World PeerGroup.
>> At this case, Shoal throws unexpected exceptions like a NPE if user
>> uses Shoal's GMS API.
> We should better handle the issue than throw NPEs. Could you file an
> issue on this for graceful handling of this problem in Shoal ?
>> In my opinion, I think that becausesome JDKs can returna empty
>> version string or null, JXTA had bettermake use ofanother compatible
>> version checking regardless of java.lang.Package#isCompatilbe() method.
> I agree.
>> And Ithink that JXTA should be verified in IBM JDK6.Actually, I don't
>> know whether JXTA has tested in IBM JDK.
> I doubt it.
>> Should I inform JXTA's community of this? Unfortunately,I didn'thave
>> found an workaround. :-(
> Yes, it is important for us as well as when we certify GlassFish
> server support for 1.6 (we currently only support 1.5 IBM JDK for
> GlassFish), we will need this fix to be in.
> Could you file an issue with the issue tracker in jxta-jxse.dev.java.net ?
>
> Thanks so much for finding and reporting this problem
> Shreedhar :)
>
>
>> Thanks.
>> --
>> Bongjae Chang
>>
>> ----- Original Message -----
>> *From:* Shreedhar Ganapathy <mailto:Shreedhar.Ganapathy_at_Sun.COM>
>> *To:* dev_at_shoal.dev.java.net <mailto:dev_at_shoal.dev.java.net>
>> *Sent:* Monday, March 23, 2009 1:50 PM
>> *Subject:* Re: [Shoal-Dev] About "Could not locate World
>> PeerGroup Module Implementation" in IBM JDK1.6
>>
>> Thanks Bongjae for analyzing and locating the problem.
>> Mo, could you look into this and figure what's the impact of not
>> having a version string ? Perhaps there is an easy workaround.
>>
>> Thanks
>> Shreedhar
>>
>> Bongjae Chang wrote:
>>> Hi.
>>> I tried totest current shoal version in *IBM JDK 1.6*.
>>> ButGMS failed to jointhe group in IBM JDK 1.6.
>>> 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.
>>> ---------------------
>>> *D:\>java -version*
>>> *java version "1.6.0"
>>> Java(TM) SE Runtime Environment (build pwi3260sr1-20080416_01(SR1))
>>> IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32
>>> jvmwi3260-20080415_18762 (JIT enabled,
>>> AOT enabled)
>>> J9VM - 20080415_018762_lHdSMr
>>> JIT - r9_20080415_1520
>>> GC - 20080415_AA)
>>> JCL - 20080412_01*
>>> *D:\>java -jar jxta.jar
>>> *Starting the JXTA platform in mode : EDGE
>>> 2009. 3. 23 ¿ÀÀü 11:22:28 net.jxta.platform.NetworkManager configure
>>> INFO: Created new configuration. mode = EDGE
>>> 2009. 3. 23 ¿ÀÀü 11:22:28 net.jxta.platform.NetworkManager
>>> startNetwork
>>> INFO: Starting JXTA Network! MODE = EDGE, HOME =
>>> file:/D:/.cache/BootEdge/
>>> 2009. 3. 23 ¿ÀÀü 11:22: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:223)
>>> at
>>> net.jxta.impl.peergroup.StdPeerGroup.isCompatible(StdPeerGroup.java:414)
>>> 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(WorldPeerGroupFact
>>> ory.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(WorldPeerGroupFact
>>> ory.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)
>>> D:\>
>>> ---------------------
>>> 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*
>>> ---------------------
>>> SoPackage#isCompatibleWith() can return
>>> "java.lang.NumberFormatException: Empty version string"
>>> exception in IBM JDK6 because specVersion can be null.
>>> At this case, do you have any solution or work-around?
>>> PS)
>>> - current cvs jxta.jar works well in Sun JDK1.5, Sun JDK1.6 and
>>> IBM JDK1.5.
>>> - I tested this case in Windows and Linux. Both Windows and
>>> Linux returned same error when I used IBM JDK1.6.
>>> Thanks.
>>> --
>>> Bongjae Chang
>>