shoal
  1. shoal
  2. SHOAL-91

jxta class loading issue using IBM JDK 1.6

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: current
    • Fix Version/s: 1.1
    • Component/s: GMS
    • Labels:
      None
    • Environment:

      Operating System: Linux
      Platform: Linux

    • Issuezilla Id:
      91

      Description

      Reported issue is with IBM JDK 1.6 on Linux, AIX and Windows.
      One can work around this issue using IBM JDK 1.5.

      Executive summary of bug in IBM JDK 1.6 from Bongjae; (does not include how this
      breaks jxta)

      Given following test code fragment:

      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.

      • 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.

      Complete details provided by Bongjae:

      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.

      • 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.

        Activity

        Hide
        Joe Fialli added a comment -
            • Issue 92 has been marked as a duplicate of this issue. ***
        Show
        Joe Fialli added a comment - Issue 92 has been marked as a duplicate of this issue. ***
        Hide
        Joe Fialli added a comment -

        I downloaded IBM JDK 6 as part of Eclipse for windows.
        The manifest file for rt.jar is incorrectly configured. It is missing
        package specification and version info for package java.

        Show
        Joe Fialli added a comment - I downloaded IBM JDK 6 as part of Eclipse for windows. The manifest file for rt.jar is incorrectly configured. It is missing package specification and version info for package java.
        Hide
        shreedhar_ganapathy added a comment -

        Working with IBM under support arrangement, they will make a patch over JDK 6 SR5 available to Sun's
        customers on AIX platform for this issue. The patch is expected to be made available in about a month
        from now.
        They do not plan to have this patch available for IBM JDK 6 SR5 on other platforms. This patch should
        also work with SR6 since SR 6 is already in freeze so the fix did not make it there. We hope that SR 7
        would have the fix incorporated.

        Show
        shreedhar_ganapathy added a comment - Working with IBM under support arrangement, they will make a patch over JDK 6 SR5 available to Sun's customers on AIX platform for this issue. The patch is expected to be made available in about a month from now. They do not plan to have this patch available for IBM JDK 6 SR5 on other platforms. This patch should also work with SR6 since SR 6 is already in freeze so the fix did not make it there. We hope that SR 7 would have the fix incorporated.
        Hide
        Joe Fialli added a comment -

        No fix on shoal side. An update version of IBM JDK 6 fixes this issue.

        Show
        Joe Fialli added a comment - No fix on shoal side. An update version of IBM JDK 6 fixes this issue.

          People

          • Assignee:
            Joe Fialli
            Reporter:
            Joe Fialli
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: