Name: gm110360 Date: 12/17/2001
Java Plug-in 1.4.0-beta3 Java HotSpot(TM) Client VM
Symptom:
Applets cannot be loaded with JRE1.4.0-beta3 when Client Authentication is
required by webserver.
And finally ClassNotFoundException occurs.
The same system has been working fine with Java Plug-in 1.3.1_01.
This problem occurs only when I am writing the following line in apache's
httpd.conf to specify Client Authentication.
SSLVerifyClient require
and doesn't reproduce by the following. In this case, No Client Authentication
and the applet is loaded normally and works.
SSLVerifyClient none
Environment:
Server:
LASER5 Linux 7.1
Apache/1.3.22
mod_ssl/2.8.5
OpenSSL/0.9.6b
Client:
Windows2000
Internet Explorer 6.0
Netscape 6.2
JRE_1.4.0-beta3
Reproducing:
1)prepare SSL enabled webserver which provides an applet-showing html.
2)configure webserver to require client certificate for authentication.
3)import client certificate to browser.
4)show any applets.
Applet console output:
java.net.SocketException: Software caused connection abort: JVM_recv in socket
input stream read
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:119)
at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(DashoA6275)
at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec
(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.g(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage
(DashoA6275)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:186)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:225)
at java.io.BufferedInputStream.read(BufferedInputStream.java:280)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:722)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:685)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:693)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream
(HttpURLConnection.java:558)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField
(HttpURLConnection.java:1092)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField
(DashoA6275)
at sun.net.www.protocol.https.PluginHttpsURLConnection.checkCookieHeader
(PluginHttpsURLConnection.java:341)
at sun.net.www.protocol.https.PluginHttpsURLConnection.getInputStream
(PluginHttpsURLConnection.java:299)
at sun.plugin.net.protocol.http.HttpUtils.followRedirects
(HttpUtils.java:41)
at sun.plugin.cache.CachedJarLoader.download(CachedJarLoader.java:341)
at sun.plugin.cache.CachedJarLoader.load(CachedJarLoader.java:112)
at sun.plugin.cache.JarCache.get(JarCache.java:170)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect
(CachedJarURLConnection.java:73)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile
(CachedJarURLConnection.java:58)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:501)
at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:462)
at sun.misc.URLClassPath$2.run(URLClassPath.java:258)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:247)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:224)
at sun.misc.URLClassPath.getResource(URLClassPath.java:137)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:189)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:134)
at sun.plugin.security.PluginClassLoader.findClass
(PluginClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:309)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:265)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:470)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:551)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1610)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:480)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:539)
java.lang.ClassNotFoundException: SwingSet2Applet
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:153)
at sun.plugin.security.PluginClassLoader.findClass
(PluginClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:309)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:265)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:475)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:551)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1610)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:480)
at sun.applet.AppletPanel.run(AppletPanel.java:293)
at java.lang.Thread.run(Thread.java:539)
Caused by: java.net.SocketException: Software caused connection abort: JVM_recv
in socket input stream read
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:119)
at com.sun.net.ssl.internal.ssl.InputRecord.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(DashoA6275)
at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec
(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.g(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage
(DashoA6275)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA6275)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:186)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:225)
at java.io.BufferedInputStream.read(BufferedInputStream.java:280)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:722)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:685)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:693)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream
(HttpURLConnection.java:558)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField
(HttpURLConnection.java:1120)
at sun.net.www.protocol.http.HttpURLConnection.getResponseCode
(HttpURLConnection.java:1134)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode
(DashoA6275)
at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:224)
at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:42)
at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:143)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:140)
... 10 more
Release Regression From : merlin-beta3
The above release value was the last known release where this
bug was knwon to work. Since then there has been a regression.
(Review ID: 136708)
======================================================================