2011/9/23 <ma...@apache.org>: > Author: markt > Date: Fri Sep 23 16:58:50 2011 > New Revision: 1174884 > > URL: http://svn.apache.org/viewvc?rev=1174884&view=rev > Log: > Fix SSL + BIO + Java 7 > The implementation of InputStream.read(byte[0]) has changed so it always > returns zero without checking for EOF. This broke the old way of doing things. > > Modified: > tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESupport.java > > Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESupport.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESupport.java?rev=1174884&r1=1174883&r2=1174884&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESupport.java > (original) > +++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESupport.java Fri > Sep 23 16:58:50 2011 > @@ -175,7 +175,7 @@ class JSSESupport implements SSLSupport, > InputStream in = ssl.getInputStream(); > int oldTimeout = ssl.getSoTimeout(); > ssl.setSoTimeout(1000); > - byte[] b = new byte[0]; > + byte[] b = new byte[1]; > listener.reset(); > ssl.startHandshake(); > int maxTries = 60; // 60 * 1000 = example 1 minute time out > @@ -183,7 +183,14 @@ class JSSESupport implements SSLSupport, > if (log.isTraceEnabled()) > log.trace("Reading for try #" + i); > try { > - in.read(b); > + int read = in.read(b); > + if (read > 0) { > + // Shouldn't happen as all input should have been > swallowed > + // before trying to do the handshake. If it does, > something > + // went wrong so lets bomb out now. > + throw new SSLException( > + sm.getString("jsseSupport.unexpectedData")); > + }
This solution looks tricky. Maybe "in.available()" can work here? > } catch(SSLException sslex) { > log.info(sm.getString("jsseSupport.clientCertError"), sslex); > throw sslex; > Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org