Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4634249

Exception in URLClassLoader

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.4.0
    • core-libs
    • x86
    • windows_nt

      The bug 4353705 is still present in JDK 1.4 build 92. 4353705 stated that the bug was fixed in merlin-rc1, however we have been receiving the same error when running in Windows NT with JDK 1.4.0-b92. For more info on the bug, please view bug#4353705.

      I have enclosed the error message that I am getting below:

      ########Start of Error Message###########
      D:\Mings\Silverstream>java -version
      java version "1.4.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
      Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

      D:\Mings\Silverstream>java JarTest
      Loading from classes.jar size = 5
          entry = WEB-INF/
          entry = WEB-INF/classes/
          entry = WEB-INF/classes/com/
          entry = WEB-INF/classes/com/mike/
          entry = WEB-INF/classes/com/mike/SimpleJavaClass.class
      Loading from classes.jar size = 6
          entry = WEB-INF/
          entry = WEB-INF/classes/
          entry = WEB-INF/classes/com/
          entry = WEB-INF/classes/com/mike/
          entry = WEB-INF/classes/com/mike/SimpleJavaClass.class
          entry = WEB-INF/classes/com/mike/SimpleJavaClass2.class
      java.lang.ClassNotFoundException: com.mike.SimpleJavaClass2
              at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
              at JarTest.readJar(JarTest.java:60)
              at JarTest.main(JarTest.java:28)

      D:\Mings\Silverstream>

      ###########End of Error Message############

      To reproduce the bug, I have enclosed 3 attached files,

      1) JarTest.java
      2) classesA.jar
      3) classesB.jar

      What you need to do is place all three files in same directory. Just run JarTest.java, which will produce the error above, due to URLClassLoader is still looking for the old JAR file.




      Here are the notes that the ISV have emailed us regarding this error:


      >From: "Alex Rosen" <###@###.###>
      >To: "'Albert Tong-Schmidt'" <###@###.###>
      >Subject: RE: JDK 1.4
      >Date: Thu, 17 Jan 2002 17:23:55 -0500
      >MIME-Version: 1.0
      >X-Priority: 3 (Normal)
      >X-MSMail-Priority: Normal
      >Importance: Normal
      >X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
      >
      >I am still seeing some cache-related problems with JARs in b90. I've
      >attached a test case. The error I get is different, but the fact that
      >setDefaultUseCaches(false) makes it work leads be to think it's at least a
      >related problem.
      >
      >This is not an urgent bug for us, as we are implementing a workaround (by
      >using our own JarFileClassLoader, rather than URLClassLoader). I'm
      >submitting it to you instead of via the web site so that I can attach the
      >sample files.
      >
      >To reproduce, run JarTest in the same directory as classesA.jar and
      >classesB.jar on Windows. (I'm using NT 4.0.) This will copy classesA.jar to
      >classes.jar, read it in, and load all of the .class files from its
      >WEB-INF/classes directory. Then it will copy classesB.jar to classes.jar,
      >and do the same thing. This time, an error occurs - it looks like
      >URLClassLoader is still looking for the old version of the JAR.
      >(classesB.jar contains one more class file than classesA.jar.) If I set
      >setDefaultUseCaches(false) then it works fine.
      >
      >JRE info:
      >
      >java version "1.4.0-rc"
      >Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-rc-b90)
      >Java HotSpot(TM) Client VM (build 1.4.0-rc-b90, mixed mode)
      >
      >Output:
      >
      >Loading from classes.jar size = 5
      > entry = WEB-INF/
      > entry = WEB-INF/classes/
      > entry = WEB-INF/classes/com/
      > entry = WEB-INF/classes/com/mike/
      > entry = WEB-INF/classes/com/mike/SimpleJavaClass.class
      >Loading from classes.jar size = 6
      > entry = WEB-INF/
      > entry = WEB-INF/classes/
      > entry = WEB-INF/classes/com/
      > entry = WEB-INF/classes/com/mike/
      > entry = WEB-INF/classes/com/mike/SimpleJavaClass.class
      > entry = WEB-INF/classes/com/mike/SimpleJavaClass2.class
      >java.lang.ClassNotFoundException: com.mike.SimpleJavaClass2
      > at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
      > at java.security.AccessController.doPrivileged(Native Method)
      > at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
      > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      > at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
      > at JarTest.readJar(JarTest.java:59)
      > at JarTest.main(JarTest.java:27)
      >
      >> -----Original Message-----
      >> From: Albert Tong-Schmidt [mailto:###@###.###
      >> Sent: Thursday, January 17, 2002 4:46 PM
      >> To: ###@###.###
      >> Subject: Re: JDK 1.4
      >>
      >>
      >> Alex,
      >>
      >> The fix for bug 4353705 was integrated starting in build 90.
      >> The RC1 release will probably be build 91 or 92.


            kkladkosunw Konstantin Kladko (Inactive)
            duke J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: