dev@shoal.java.net

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

From: Bongjae Chang <carryel_at_korea.com>
Date: Tue, 18 Aug 2009 09:38:08 +0900

Hi Shreedhar,

Unfortunately, I couldn't receive any response from JXTA dev community.

But, I will try to send this issue to the community and share it again today.

If I will file this issue with the issue tracker in jxta-jxse.dev.java.net or receive any response from jxta dev mailing, I will reply again.

Thanks.
--
Bongjae Chang


  ----- Original Message -----
  From: Shreedhar Ganapathy
  To: dev_at_shoal.dev.java.net
  Sent: Tuesday, August 18, 2009 7:31 AM
  Subject: Re: [Shoal-Dev] About "Could not locate World PeerGroup Module Implementation" in IBM JDK1.6


  corrected IBM JDK version in my email to IBM JDK 6

  Shreedhar Ganapathy wrote:
    Hi Bongjae
    Just following up from this old thread as this issue is now seen in GlassFish v2.1.1 testing with IBM JDK 6
    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'm sorry for this late reply.

        If JDK doesn't have a version string, GMS can't join the group because JXTA fails to initialize 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 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.
      I agree.


        And I think 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't have 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
          To: 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 to test current shoal version in IBM JDK 1.6.

            But GMS failed to join the 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
            ---------------------

            So Package#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