JBossWeb SVN: r2141 - in branches/7.2.x: webapps/docs and 1 other directory.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2012-12-21 08:35:16 -0500 (Fri, 21 Dec 2012)
New Revision: 2141
Modified:
branches/7.2.x/pom.xml
branches/7.2.x/webapps/docs/changelog.xml
Log:
Update changelog.
Modified: branches/7.2.x/pom.xml
===================================================================
(Binary files differ)
Modified: branches/7.2.x/webapps/docs/changelog.xml
===================================================================
--- branches/7.2.x/webapps/docs/changelog.xml 2012-12-21 13:15:27 UTC (rev 2140)
+++ branches/7.2.x/webapps/docs/changelog.xml 2012-12-21 13:35:16 UTC (rev 2141)
@@ -16,6 +16,23 @@
<body>
+<section name="JBoss Web 7.2.0.Beta1 (remm)">
+ <subsection name="Catalina">
+ <changelog>
+ <fix>
+ Forward during async. (remm)
+ </fix>
+ </changelog>
+ </subsection>
+ <subsection name="Coyote">
+ <changelog>
+ <fix>
+ Add NIO and APR options for socket buffers. (remm)
+ </fix>
+ </changelog>
+ </subsection>
+</section>
+
<section name="JBoss Web 7.2.0.Alpha4 (remm)">
<subsection name="Catalina">
<changelog>
12 years
JBossWeb SVN: r2140 - branches/7.2.x/src/main/java/org/apache/tomcat/util/net.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2012-12-21 08:15:27 -0500 (Fri, 21 Dec 2012)
New Revision: 2140
Modified:
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/Constants.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/NioEndpoint.java
Log:
>From my list: add an option for configuration of socket buffer in APR and NIO2, since Tomcat has it for NIO1.
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java 2012-12-21 02:23:02 UTC (rev 2139)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java 2012-12-21 13:15:27 UTC (rev 2140)
@@ -152,6 +152,20 @@
*/
protected int keepAliveTimeout = -1;
+ /**
+ * Receive buffer.
+ */
+ protected int soReceiveBuffer = Constants.SO_RCV_BUFFER;
+ public int getSoReceiveBuffer() { return soReceiveBuffer; }
+ public void setSoReceiveBuffer(int soReceiveBuffer) { this.soReceiveBuffer = soReceiveBuffer; }
+
+ /**
+ * Send buffer.
+ */
+ protected int soSendBuffer = Constants.SO_SND_BUFFER;
+ public int getSoSendBuffer() { return soSendBuffer; }
+ public void setSoSendBuffer(int soSendBuffer) { this.soSendBuffer = soSendBuffer; }
+
/**
* The default is true - the created threads will be in daemon mode. If set
* to false, the control thread will not be daemon - and will keep the
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-12-21 02:23:02 UTC (rev 2139)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-12-21 13:15:27 UTC (rev 2140)
@@ -234,6 +234,22 @@
/**
+ * Receive buffer.
+ */
+ protected int soReceiveBuffer = Constants.SO_RCV_BUFFER;
+ public int getSoReceiveBuffer() { return soReceiveBuffer; }
+ public void setSoReceiveBuffer(int soReceiveBuffer) { this.soReceiveBuffer = soReceiveBuffer; }
+
+
+ /**
+ * Send buffer.
+ */
+ protected int soSendBuffer = Constants.SO_SND_BUFFER;
+ public int getSoSendBuffer() { return soSendBuffer; }
+ public void setSoSendBuffer(int soSendBuffer) { this.soSendBuffer = soSendBuffer; }
+
+
+ /**
* Keep-Alive timeout.
*/
protected int keepAliveTimeout = -1;
@@ -830,6 +846,10 @@
Socket.optSet(socket, Socket.APR_TCP_NODELAY, (tcpNoDelay ? 1 : 0));
if (soTimeout > 0)
Socket.timeoutSet(socket, soTimeout * 1000);
+ if (soReceiveBuffer > 0)
+ Socket.optSet(socket, Socket.APR_SO_RCVBUF, soReceiveBuffer);
+ if (soSendBuffer > 0)
+ Socket.optSet(socket, Socket.APR_SO_SNDBUF, soSendBuffer);
// 2: SSL handshake
step = 2;
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/Constants.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/Constants.java 2012-12-21 02:23:02 UTC (rev 2139)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/Constants.java 2012-12-21 13:15:27 UTC (rev 2140)
@@ -33,6 +33,12 @@
public static final boolean REUSE_ADDRESS =
Boolean.valueOf(System.getProperty("org.apache.tomcat.util.net.REUSE_ADDRESS", "true")).booleanValue();
+ public static final int SO_RCV_BUFFER =
+ Integer.valueOf(System.getProperty("org.apache.tomcat.util.net.SO_RCV_BUFFER", "-1")).intValue();
+
+ public static final int SO_SND_BUFFER =
+ Integer.valueOf(System.getProperty("org.apache.tomcat.util.net.SO_SND_BUFFER", "-1")).intValue();
+
/**
* The Request attribute key for the cipher suite.
*/
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/NioEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/NioEndpoint.java 2012-12-21 02:23:02 UTC (rev 2139)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/NioEndpoint.java 2012-12-21 13:15:27 UTC (rev 2140)
@@ -349,6 +349,12 @@
if (tcpNoDelay) {
channel.setOption(StandardSocketOptions.TCP_NODELAY, tcpNoDelay);
}
+ if (soReceiveBuffer > 0) {
+ channel.setOption(StandardSocketOptions.SO_RCVBUF, soReceiveBuffer);
+ }
+ if (soSendBuffer > 0) {
+ channel.setOption(StandardSocketOptions.SO_SNDBUF, soSendBuffer);
+ }
// Initialize the channel
serverSocketChannelFactory.initChannel(channel);
12 years
JBossWeb SVN: r2137 - branches/7.2.x/src/main/java/org/apache/catalina/core.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2012-12-20 12:24:52 -0500 (Thu, 20 Dec 2012)
New Revision: 2137
Modified:
branches/7.2.x/src/main/java/org/apache/catalina/core/ApplicationDispatcher.java
Log:
Spec clarification for forward during async.
Modified: branches/7.2.x/src/main/java/org/apache/catalina/core/ApplicationDispatcher.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/catalina/core/ApplicationDispatcher.java 2012-12-11 22:38:27 UTC (rev 2136)
+++ branches/7.2.x/src/main/java/org/apache/catalina/core/ApplicationDispatcher.java 2012-12-20 17:24:52 UTC (rev 2137)
@@ -553,6 +553,11 @@
processRequest(request,response,state);
}
+ // During async, the response will not be closed after a forward
+ if (request.getAsyncContext() != null) {
+ return;
+ }
+
// This is not a real close in order to support error processing
if (wrapper.getLogger().isDebugEnabled() )
wrapper.getLogger().debug(" Disabling the response for futher output");
12 years
JBossWeb SVN: r2136 - branches/JBOSSWEB_2_1_12_GA_patch03_JBPAPP-10306/java/org/apache/catalina/authenticator.
by jbossweb-commits@lists.jboss.org
Author: aogburn
Date: 2012-12-11 17:38:27 -0500 (Tue, 11 Dec 2012)
New Revision: 2136
Modified:
branches/JBOSSWEB_2_1_12_GA_patch03_JBPAPP-10306/java/org/apache/catalina/authenticator/DigestAuthenticator.java
Log:
[JBPAPP-10306] backport JBWEB-258 for better, more unique DigestAuthenticator nonces
Modified: branches/JBOSSWEB_2_1_12_GA_patch03_JBPAPP-10306/java/org/apache/catalina/authenticator/DigestAuthenticator.java
===================================================================
--- branches/JBOSSWEB_2_1_12_GA_patch03_JBPAPP-10306/java/org/apache/catalina/authenticator/DigestAuthenticator.java 2012-12-06 18:21:07 UTC (rev 2135)
+++ branches/JBOSSWEB_2_1_12_GA_patch03_JBPAPP-10306/java/org/apache/catalina/authenticator/DigestAuthenticator.java 2012-12-11 22:38:27 UTC (rev 2136)
@@ -294,21 +294,21 @@
/**
* Generate a unique token. The token is generated according to the
* following pattern. NOnceToken = Base64 ( MD5 ( client-IP ":"
- * time-stamp ":" private-key ) ).
+ * client-port ":" time-stamp ":" private-key ) ).
*
* @param request HTTP Servlet request
*/
protected String generateNonce(Request request) {
long currentTime = System.currentTimeMillis();
+ int remotePort = request.getRemotePort();
+ String ipPortTimeKey =
+ request.getRemoteAddr() + ":" + remotePort + ":" + currentTime + ":" + getKey();
- String ipTimeKey =
- request.getRemoteAddr() + ":" + currentTime + ":" + getKey();
+ byte[] buffer = ConcurrentMessageDigest.digestMD5(ipPortTimeKey.getBytes());
+ String nonce = currentTime + ":" + remotePort + ":" + MD5Encoder.encode(buffer);
- byte[] buffer = ConcurrentMessageDigest.digestMD5(ipTimeKey.getBytes());
- String nonce = currentTime + ":" + MD5Encoder.encode(buffer);
-
NonceInfo info = new NonceInfo(currentTime, 100);
synchronized (nonces) {
nonces.put(nonce, info);
@@ -567,13 +567,19 @@
if (i < 0 || (i + 1) == nonce.length()) {
return false;
}
+ int j = nonce.lastIndexOf(":");
+ if (i == j) {
+ return false;
+ }
long nonceTime;
+ int remotePort;
try {
nonceTime = Long.parseLong(nonce.substring(0, i));
+ remotePort = Integer.parseInt(nonce.substring(i + 1, j));
} catch (NumberFormatException nfe) {
return false;
}
- String md5clientIpTimeKey = nonce.substring(i + 1);
+ String md5clientIpPortTimeKey = nonce.substring(j + 1);
long currentTime = System.currentTimeMillis();
if ((currentTime - nonceTime) > nonceValidity) {
nonceStale = true;
@@ -581,12 +587,12 @@
nonces.remove(nonce);
}
}
- String serverIpTimeKey =
- request.getRemoteAddr() + ":" + nonceTime + ":" + key;
+ String serverIpPortTimeKey =
+ request.getRemoteAddr() + ":" + remotePort + ":" + nonceTime + ":" + key;
byte[] buffer = ConcurrentMessageDigest.digestMD5(
- serverIpTimeKey.getBytes());
- String md5ServerIpTimeKey = MD5Encoder.encode(buffer);
- if (!md5ServerIpTimeKey.equals(md5clientIpTimeKey)) {
+ serverIpPortTimeKey.getBytes());
+ String md5ServerIpPortTimeKey = MD5Encoder.encode(buffer);
+ if (!md5ServerIpPortTimeKey.equals(md5clientIpPortTimeKey)) {
return false;
}
12 years
JBossWeb SVN: r2135 - in branches: 7.0.x/java/org/apache/tomcat/util/net/jsse and 4 other directories.
by jbossweb-commits@lists.jboss.org
Author: remy.maucherat(a)jboss.com
Date: 2012-12-06 13:21:07 -0500 (Thu, 06 Dec 2012)
New Revision: 2135
Modified:
branches/7.0.x/java/org/apache/tomcat/util/net/AprEndpoint.java
branches/7.0.x/java/org/apache/tomcat/util/net/JIoEndpoint.java
branches/7.0.x/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/JIoEndpoint.java
branches/7.2.x/src/main/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
branches/7.2.x/src/main/java/org/jboss/web/CoyoteMessages.java
branches/7.2.x/webapps/docs/changelog.xml
Log:
- Tweak unlock accept with a timeout.
- Port patch: fix java.io handshake with Java 7.
Modified: branches/7.0.x/java/org/apache/tomcat/util/net/AprEndpoint.java
===================================================================
--- branches/7.0.x/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.0.x/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -23,6 +23,7 @@
package org.apache.tomcat.util.net;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.Executor;
@@ -799,19 +800,21 @@
*/
protected void unlockAccept() {
java.net.Socket s = null;
+ InetSocketAddress saddr = null;
try {
// Need to create a connection to unlock the accept();
if (address == null) {
- s = new java.net.Socket("localhost", port);
+ saddr = new InetSocketAddress("localhost", port);
} else {
- s = new java.net.Socket(address, port);
- // setting soLinger to a small value will help shutdown the
- // connection quicker
- s.setSoLinger(true, 0);
+ saddr = new InetSocketAddress(address, port);
}
+ s = new java.net.Socket();
+ s.setSoLinger(true, 0);
+ s.connect(saddr, 2000);
// If deferAccept is enabled, send at least one byte
if (deferAccept) {
s.getOutputStream().write(" ".getBytes());
+ s.getOutputStream().flush();
}
} catch (Exception e) {
// Ignore
Modified: branches/7.0.x/java/org/apache/tomcat/util/net/JIoEndpoint.java
===================================================================
--- branches/7.0.x/java/org/apache/tomcat/util/net/JIoEndpoint.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.0.x/java/org/apache/tomcat/util/net/JIoEndpoint.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -26,6 +26,7 @@
import java.net.BindException;
import java.net.Inet6Address;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
@@ -1072,21 +1073,20 @@
* Unlock the accept by using a local connection.
*/
protected void unlockAccept() {
- Socket s = null;
+ java.net.Socket s = null;
+ InetSocketAddress saddr = null;
try {
// Need to create a connection to unlock the accept();
if (address == null) {
- s = new Socket("localhost", port);
+ saddr = new InetSocketAddress("localhost", port);
} else {
- s = new Socket(address, port);
- // setting soLinger to a small value will help shutdown the
- // connection quicker
- s.setSoLinger(true, 0);
+ saddr = new InetSocketAddress(address, port);
}
+ s = new java.net.Socket();
+ s.setSoLinger(true, 0);
+ s.connect(saddr, 2000);
} catch (Exception e) {
- if (log.isDebugEnabled()) {
- log.debug(sm.getString("endpoint.debug.unlock", "" + port), e);
- }
+ // Ignore
} finally {
if (s != null) {
try {
Modified: branches/7.0.x/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
===================================================================
--- branches/7.0.x/java/org/apache/tomcat/util/net/jsse/JSSESupport.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.0.x/java/org/apache/tomcat/util/net/jsse/JSSESupport.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -161,7 +161,7 @@
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
@@ -169,7 +169,13 @@
if(log.isTraceEnabled())
log.trace("Reading for try #" +i);
try {
- int x = 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("Unecpected data during handshake");
+ }
} catch(SSLException sslex) {
log.info("SSL Error getting client Certs",sslex);
throw sslex;
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AbstractEndpoint.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -19,6 +19,7 @@
package org.apache.tomcat.util.net;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
@@ -286,16 +287,17 @@
*/
protected void unlockAccept() {
java.net.Socket s = null;
+ InetSocketAddress saddr = null;
try {
- // Need to create a connection to unlock the accept();
- if (address == null) {
- s = new java.net.Socket("localhost", port);
- } else {
- s = new java.net.Socket(address, port);
- // setting soLinger to a small value will help shutdown the
- // connection quicker
- s.setSoLinger(true, 0);
- }
+ // Need to create a connection to unlock the accept();
+ if (address == null) {
+ saddr = new InetSocketAddress("localhost", port);
+ } else {
+ saddr = new InetSocketAddress(address, port);
+ }
+ s = new java.net.Socket();
+ s.setSoLinger(true, 0);
+ s.connect(saddr, 2000);
// If deferAccept is enabled, send at least one byte
if (deferAccept) {
s.getOutputStream().write(" ".getBytes());
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/AprEndpoint.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -21,6 +21,7 @@
import static org.jboss.web.CoyoteMessages.MESSAGES;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.Executor;
@@ -782,24 +783,23 @@
}
- /**
- * Unlock the server socket accept using a bogus connection.
- */
protected void unlockAccept() {
java.net.Socket s = null;
+ InetSocketAddress saddr = null;
try {
// Need to create a connection to unlock the accept();
if (address == null) {
- s = new java.net.Socket("localhost", port);
+ saddr = new InetSocketAddress("localhost", port);
} else {
- s = new java.net.Socket(address, port);
- // setting soLinger to a small value will help shutdown the
- // connection quicker
- s.setSoLinger(true, 0);
+ saddr = new InetSocketAddress(address, port);
}
+ s = new java.net.Socket();
+ s.setSoLinger(true, 0);
+ s.connect(saddr, 2000);
// If deferAccept is enabled, send at least one byte
if (deferAccept) {
s.getOutputStream().write(" ".getBytes());
+ s.getOutputStream().flush();
}
} catch (Exception e) {
// Ignore
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/JIoEndpoint.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/JIoEndpoint.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/JIoEndpoint.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -22,6 +22,7 @@
import java.net.BindException;
import java.net.Inet6Address;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
@@ -1056,21 +1057,19 @@
}
- /**
- * Unlock the accept by using a local connection.
- */
protected void unlockAccept() {
- Socket s = null;
+ java.net.Socket s = null;
+ InetSocketAddress saddr = null;
try {
// Need to create a connection to unlock the accept();
if (address == null) {
- s = new Socket("localhost", port);
+ saddr = new InetSocketAddress("localhost", port);
} else {
- s = new Socket(address, port);
- // setting soLinger to a small value will help shutdown the
- // connection quicker
- s.setSoLinger(true, 0);
+ saddr = new InetSocketAddress(address, port);
}
+ s = new java.net.Socket();
+ s.setSoLinger(true, 0);
+ s.connect(saddr, 2000);
} catch (Exception e) {
// Ignore
} finally {
Modified: branches/7.2.x/src/main/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
===================================================================
--- branches/7.2.x/src/main/java/org/apache/tomcat/util/net/jsse/JSSESupport.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/src/main/java/org/apache/tomcat/util/net/jsse/JSSESupport.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -161,15 +161,19 @@
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
for (int i = 0; i < maxTries; i++) {
- if(CoyoteLogger.UTIL_LOGGER.isTraceEnabled())
- CoyoteLogger.UTIL_LOGGER.trace("Reading for try #" +i);
try {
- int x = 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(MESSAGES.sslHandshakeData());
+ }
} catch(SSLException sslex) {
CoyoteLogger.UTIL_LOGGER.trace("SSL Error getting client Certs",sslex);
throw sslex;
Modified: branches/7.2.x/src/main/java/org/jboss/web/CoyoteMessages.java
===================================================================
--- branches/7.2.x/src/main/java/org/jboss/web/CoyoteMessages.java 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/src/main/java/org/jboss/web/CoyoteMessages.java 2012-12-06 18:21:07 UTC (rev 2135)
@@ -274,4 +274,7 @@
@Message(id = 2078, value = "No context found: %s")
IllegalStateException mapperContextNotFound(String contextPath);
+ @Message(id = 2079, value = "Unexpected data read during handshake")
+ String sslHandshakeData();
+
}
Modified: branches/7.2.x/webapps/docs/changelog.xml
===================================================================
--- branches/7.2.x/webapps/docs/changelog.xml 2012-11-27 12:53:37 UTC (rev 2134)
+++ branches/7.2.x/webapps/docs/changelog.xml 2012-12-06 18:21:07 UTC (rev 2135)
@@ -32,6 +32,12 @@
<fix>
Fix NIO2 client certificate renegociation. (remm)
</fix>
+ <fix>
+ Fix java.io client certificate renegociation on Java 7. (markt)
+ </fix>
+ <fix>
+ Add short unlock accept timeout. (markt)
+ </fix>
</changelog>
</subsection>
</section>
12 years