FULL PRODUCT VERSION : java version "1.7.0_04-ea" Java(TM) SE Runtime Environment (build 1.7.0_04-ea-b06) Java HotSpot(TM) Client VM (build 23.0-b09, mixed mode, sharing) ADDITIONAL OS VERSION INFORMATION : Windows 7 (64-bit), Windows XP (32-bit), SLES (32-bit). Firefox 3.6.25, Firefox 9.0.1. EXTRA RELEVANT SYSTEM CONFIGURATION : Crash does not occur with IE8/9 or Chrome. A DESCRIPTION OF THE PROBLEM : A Java applet that attempts to call URL.openStream from the applet stop method may cause Firefox to crash. This started happening with Java 7 update 4 and did not occur with Java 7 update 2. Also does not occur with any Java 6 versions. Strangely, it seems to depend on the host used for opening the URL stream, though it's not clear why some URLs fail while most others work. Among the URLs that result in the crash are www.nytimes.com, www.cnn.com and www.gocomics.com. A coworker has reproduced this problem on various machines using these same URLs. The reason for calling openStream is because our client applet wishes to fire off a "logout" message to our webapp to log the user out when the applet is navigated away. We don't really care about the response, and it's really just a best-effort attempt to notify the server. We use URL.openStream to open the connection to the server from applet.stop. REGRESSION. Last worked in version 7 STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Create a Java applet that calls URL.openStream from the applet stop method, where the URL is one of the URLs noted above. Load an HTML page containing the applet, then browse away from the applet page to another website (www.oracle.com or www.google.com work fine). In Firefox 9.0.1 with Java 7u4_b06, the VM and browser will crash. EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - VM and browser should not crash on browse-away from the applet page. ACTUAL - VM and Firefox crash on browse-away from the applet page. ERROR MESSAGES/STACK TRACES THAT OCCUR : Not finding any hs_err_pidxxxx.log files, but here's a Java console retrieved from Sun/Deployment/logs file after the crash: Log started: Fri, 13 Jan 2012 17:56:32 -0500 basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@4737a3 network: Cache entry not found [url: file:/C:/Test/, version: null] network: Cache entry not found [url: file:/C:/Test/, version: null] basic: Applet loaded. basic: Applet resized and added to parent container basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 129611 us, pluginInit dt 422807 us, TotalTime: 552418 us applet init request url: http://www.gocomics.com basic: Applet initialized basic: Starting applet basic: completed perf rollup applet start basic: Applet made visible basic: Applet started basic: Told clients applet is started basic: Starting applet teardown applet stop Opening stream to URL... network: Cache entry not found [url: http://www.gocomics.com/, version: null] network: Connecting http://www.gocomics.com/ with proxy=DIRECT network: Cache entry not found [url: http://www.gocomics.com/crossdomain.xml, version: null] network: Connecting http://www.gocomics.com/crossdomain.xml with proxy=DIRECT network: Connecting http://www.gocomics.com:80/ with proxy=DIRECT plugin2manager.parentwindowDispose network: Server http://www.gocomics.com/crossdomain.xml requesting to set-cookie with "remember_token=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT" java.lang.InterruptedException at java.lang.Object.wait(Native Method) at sun.plugin2.message.Queue.waitForMessage(Unknown Source) at sun.plugin2.message.Pipe$2.run(Unknown Source) at com.sun.deploy.util.Waiter$1.wait(Unknown Source) at com.sun.deploy.util.Waiter.runAndWait(Unknown Source) at sun.plugin2.message.Pipe.receive(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.doCookieOp(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.setCookie(Unknown Source) at sun.plugin2.main.client.PluginCookieSelector.setCookieInBrowser(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.setCookieInfo(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.put(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at BrowseAwayApplet.openURL(BrowseAwayApplet.java:40) at BrowseAwayApplet.stop(BrowseAwayApplet.java:32) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.stop(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.InterruptedException at java.lang.Object.wait(Native Method) at sun.plugin2.message.Queue.waitForMessage(Unknown Source) at sun.plugin2.message.Pipe$2.run(Unknown Source) at com.sun.deploy.util.Waiter$1.wait(Unknown Source) at com.sun.deploy.util.Waiter.runAndWait(Unknown Source) at sun.plugin2.message.Pipe.receive(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.doCookieOp(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.setCookie(Unknown Source) at sun.plugin2.main.client.PluginCookieSelector.setCookieInBrowser(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.setCookieInfo(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.put(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at BrowseAwayApplet.openURL(BrowseAwayApplet.java:40) at BrowseAwayApplet.stop(BrowseAwayApplet.java:32) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.stop(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Cookie service is unavailable - ignore "Set-Cookie" network: Server http://www.gocomics.com/crossdomain.xml requesting to set-cookie with "_GoComics3_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlOTlhZDkxNjE1MDYxMWU0YzdiM2Y5OWEzZWFiM2MwOWZJIgpmbGFzaAY7AEZJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoKZXJyb3JJIiZTb3JyeS4gY3Jvc3Nkb21haW4gd2FzIG5vdCBGb3VuZC4GOwBGBjoKQHVzZWRvOghTZXQGOgpAaGFzaHsA--229d6a44a4da3e3ff418138385abf04e5d90b3f5; path=/; HttpOnly" java.lang.InterruptedException at java.lang.Object.wait(Native Method) at sun.plugin2.message.Queue.waitForMessage(Unknown Source) at sun.plugin2.message.Pipe$2.run(Unknown Source) at com.sun.deploy.util.Waiter$1.wait(Unknown Source) at com.sun.deploy.util.Waiter.runAndWait(Unknown Source) at sun.plugin2.message.Pipe.receive(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.doCookieOp(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.setCookie(Unknown Source) at sun.plugin2.main.client.PluginCookieSelector.setCookieInBrowser(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.setCookieInfo(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.put(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at BrowseAwayApplet.openURL(BrowseAwayApplet.java:40) at BrowseAwayApplet.stop(BrowseAwayApplet.java:32) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.stop(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.InterruptedException at java.lang.Object.wait(Native Method) at sun.plugin2.message.Queue.waitForMessage(Unknown Source) at sun.plugin2.message.Pipe$2.run(Unknown Source) at com.sun.deploy.util.Waiter$1.wait(Unknown Source) at com.sun.deploy.util.Waiter.runAndWait(Unknown Source) at sun.plugin2.message.Pipe.receive(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.doCookieOp(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.setCookie(Unknown Source) at sun.plugin2.main.client.PluginCookieSelector.setCookieInBrowser(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.setCookieInfo(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.put(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at BrowseAwayApplet.openURL(BrowseAwayApplet.java:40) at BrowseAwayApplet.stop(BrowseAwayApplet.java:32) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.stop(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Cookie service is unavailable - ignore "Set-Cookie" network: Cache entry not found [url: http://www.gocomics.com/, version: null] network: Connecting http://www.gocomics.com/ with proxy=DIRECT network: Connecting http://www.gocomics.com:80/ with proxy=DIRECT java.io.IOException: Error 232 writing to named pipe, numWritten 0, WriteFile ts: 1985723991, now ts: 1985724006, dT 15 at sun.plugin2.ipc.windows.WindowsNamedPipe.write(Unknown Source) at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.flush(Unknown Source) at sun.plugin2.message.transport.NamedPipeTransport.signalDataWritten(Unknown Source) at sun.plugin2.message.transport.SerializingTransport.write(Unknown Source) at sun.plugin2.message.Pipe.send(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.doCookieOp(Unknown Source) at sun.plugin2.main.client.MessagePassingExecutionContext.getCookie(Unknown Source) at sun.plugin2.main.client.PluginCookieSelector.getCookieFromBrowser(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.getCookieInfo(Unknown Source) at com.sun.deploy.net.cookie.DeployCookieSelector.get(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.setCookieHeader(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at com.sun.deploy.net.CrossDomainXML.check(Unknown Source) at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at BrowseAwayApplet.openURL(BrowseAwayApplet.java:40) at BrowseAwayApplet.stop(BrowseAwayApplet.java:32) at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.stop(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) network: Cookie service is not available - use cache to determine "Cookie" network: Connecting http://www.gocomics.com/ with cookie "" network: Server http://www.gocomics.com/ requesting to set-cookie with "remember_token=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT" java.io.IOException: Error 232 writing to named pipe, numWritten 0, WriteFile ts: 1985828950, now ts: 1985828972, dT 22 at sun.plugin2.ipc.windows.WindowsNamedPipe.write(Unknown Source) at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.flush(Unknown Source) at sun.plugin2.message.transport.NamedPipeTransport$Seria ( This report has more than 16,000 characters and has been truncated. )