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

ClassFormatError instead of ClassNotFoundException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P3 P3
    • None
    • 5.0
    • deploy
    • x86
    • windows_xp

      FULL PRODUCT VERSION :
      java version "1.5.0_04"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
      Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Version 5.1.2600]

      A DESCRIPTION OF THE PROBLEM :
      Instantiation of a non existing class throws a java.lang.ClassFormatError instead of a java.lang.ClassNotFoundException when the application resides in a jar file which has "." in the class-path entry in the manifest file.
      Only occurs when using http protocol, not file://.....
      Tested on Internet Explorer 6.0 and Mozilla Firefox 1.0.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. create a test class: see code below

      2. create a manifest file:
      MANIFEST.MF:
      ********************************
      Class-Path: .

      ********************************

      3. create a jar file:
      jar cfm test.jar MANIFEST.MF Test.class

      4. create an html file:
      test.html:
      ********************************
      <html>
      <head>
      </head>

      <body>
      <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
      <param name="code" value="Test">
      <param name="archive" value="test.jar">
      <comment>
      <embed type="application/x-java-applet;version=1.5" code="Test" archive="test.jar">
      </embed>
      </comment>
      </object>
      </body>
      </html>
      ********************************

      5. put the files on a webserver
      the bug only occurs when used through http.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      java.lang.ClassNotFoundException
      ACTUAL -
      java.lang.ClassFormatError: Truncated class file

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      java.lang.ClassFormatError: Truncated class file
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(Unknown Source)
      at java.security.SecureClassLoader.defineClass(Unknown Source)
      at java.net.URLClassLoader.defineClass(Unknown Source)
      at java.net.URLClassLoader.access$100(Unknown Source)
      at java.net.URLClassLoader$1.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(Unknown Source)
      at sun.applet.AppletClassLoader.findClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at sun.applet.AppletClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClassInternal(Unknown Source)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Unknown Source)
      at Test.init(Test.java:7)
      at sun.applet.AppletPanel.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Exception in thread "thread applet-Test" java.lang.NullPointerException
      at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
      at sun.plugin.AppletViewer.showAppletException(Unknown Source)
      at sun.applet.AppletPanel.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import javax.swing.*;

      public class Test extends JApplet {

          public void init() {
              try {
                  Class.forName("non.existing.Class");
              } catch (ClassNotFoundException e) {
                  e.printStackTrace();
              }
          }
      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      I can leave the current dir out of the class-path entry.

            ngthomas Thomas Ng (Inactive)
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: