You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2011/09/17 21:27:31 UTC
svn commit: r1172054 - in
/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http:
impl/nio/AbstractIODispatch.java nio/reactor/ssl/SSLIOSession.java
Author: olegk
Date: Sat Sep 17 19:27:30 2011
New Revision: 1172054
URL: http://svn.apache.org/viewvc?rev=1172054&view=rev
Log:
Trying to fix race in SSL i/o session initialization
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/AbstractIODispatch.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/AbstractIODispatch.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/AbstractIODispatch.java?rev=1172054&r1=1172053&r2=1172054&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/AbstractIODispatch.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/AbstractIODispatch.java Sat Sep 17 19:27:30 2011
@@ -78,8 +78,10 @@ public abstract class AbstractIODispatch
SSLIOSession.SESSION_KEY);
if (ssliosession != null) {
try {
- if (!ssliosession.isInitialized()) {
- ssliosession.initialize();
+ synchronized (ssliosession) {
+ if (!ssliosession.isInitialized()) {
+ ssliosession.initialize();
+ }
}
} catch (IOException ex) {
onException(conn, ex);
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java?rev=1172054&r1=1172053&r2=1172054&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java Sat Sep 17 19:27:30 2011
@@ -131,6 +131,9 @@ public class SSLIOSession implements IOS
if (this.initialized) {
throw new IllegalStateException("SSL I/O session already initialized");
}
+ if (this.status >= IOSession.CLOSING) {
+ return;
+ }
switch (mode) {
case CLIENT:
this.sslEngine.setUseClientMode(true);