applet locks-up jvm: IllegalStateException: zip file closed
public class BugTest
extends java.applet.Applet
{
private final static String JLFGR =
"jar:http://www.foobar.com/someapp/lib/jlfgr-1_0.jar!"; //
sun-supplied jar file
public void start()
{
javax.swing.SwingUtilities.invokeLater( new Runnable()
{ public void run() {
javax.swing.JFrame frame = new BugTestFrame();
frame.pack();
frame.setVisible( true );
} } );
}
public static class BugTestFrame
extends javax.swing.JFrame
{
public BugTestFrame()
{
java.awt.Container cp = new javax.swing.JPanel();
setContentPane( cp );
try {
// this file is not in the jar. the attempt to find
it seems to leave the jar in an unexpected (closed) state, and causes
the next line to lock up the jvm & browser:
new javax.swing.ImageIcon( new java.net.URL( JLFGR + "/
foobar.gif" ) );
// here's where it locks up and everything becomes
unresponsive:
cp.add( new javax.swing.JLabel( new
javax.swing.ImageIcon( new java.net.URL( JLFGR + "/
toolbarButtonGraphics/general/Stop16.gif" ) ) ) );
} catch( java.net.MalformedURLException exc ) {
exc.printStackTrace();
}
}
}
}
Uncaught error fetching image:
java.lang.IllegalStateException: zip file closed
at java.util.zip.ZipFile.ensureOpen(Unknown Source)
at java.util.zip.ZipFile.getEntry(Unknown Source)
at java.util.jar.JarFile.getEntry(Unknown Source)
at com.sun.deploy.cache.CachedJarFile.getEntry(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown
Source)
at
sun.plugin.net.protocol.jar.CachedJarURLConnection.getInputStream(Unknown
Source)
at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)