JDK-6633676 : NPE from java.io.DeleteOnExitHook.add
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows
  • CPU: x86
  • Submitted: 2007-11-26
  • Updated: 2010-04-04
  • Resolved: 2008-02-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6u10Resolved
Related Reports
Duplicate :  
Description
NullPointerException from java.io.DeleteOnExitHook.add methd, if we use System.exit in our code while downloading bundles. 

Scenario:
a) loading a class in a thread.
b) In the main thread call System.exit 

Exception :
Error downloading bundle for javax/rmi/CORBA/ValueHandlerMultiFormat.class:
java.lang.NullPointerException
        at java.io.DeleteOnExitHook.add(Unknown Source)
        at java.io.File.deleteOnExit(Unknown Source)
        at sun.jkernel.Bundle.download(Unknown Source)
        at sun.jkernel.Bundle.install(Unknown Source)
        at sun.jkernel.Bundle.install(Unknown Source)
        at sun.jkernel.DownloadManager.doGetBootClassPathEntryForResource(Unknown Source)
        at sun.jkernel.DownloadManager.access$500(Unknown Source)
        at sun.jkernel.DownloadManager$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.jkernel.DownloadManager.getBootClassPathEntryForResource(UnknownSource)
        at sun.jkernel.DownloadManager.getBootClassPathEntryForClass(Unknown Source)
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClass0(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.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)


Sample Code:
new Thread(new Runnable () { Class.forName(className) }).start();
System.exit(0)