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 2007/06/22 00:23:06 UTC
svn commit: r549633 - in
/jakarta/httpcomponents/httpcore/trunk/module-nio/src:
main/java/org/apache/http/impl/nio/ main/java/org/apache/http/nio/protocol/
main/java/org/apache/http/nio/util/ test/java/org/apache/http/nio/protocol/
Author: olegk
Date: Thu Jun 21 15:23:04 2007
New Revision: 549633
URL: http://svn.apache.org/viewvc?view=rev&rev=549633
Log:
HTTPCORE-83: Fixed synchronization bug in ThrottlingHttpServiceHandler; fixed bug in SharedOutputBuffer
Modified:
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/test/java/org/apache/http/nio/protocol/TestNIOHttp.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java?view=diff&rev=549633&r1=549632&r2=549633
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/NHttpConnectionBase.java Thu Jun 21 15:23:04 2007
@@ -222,7 +222,7 @@
}
public boolean isOpen() {
- return !this.closed;
+ return !this.closed && !this.session.isClosed();
}
public boolean isStale() {
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java?view=diff&rev=549633&r1=549632&r2=549633
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java Thu Jun 21 15:23:04 2007
@@ -455,7 +455,9 @@
connState.resetInput();
connState.resetOutput();
- conn.requestOutput();
+ if (conn.isOpen()) {
+ conn.requestOutput();
+ }
}
} catch (IOException ex) {
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java?view=diff&rev=549633&r1=549632&r2=549633
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java Thu Jun 21 15:23:04 2007
@@ -269,9 +269,6 @@
if (!this.connStrategy.keepAlive(response, context)) {
conn.close();
- } else {
- // Ready for new request
- conn.requestInput();
}
} else {
connState.setOutputState(ServerConnState.RESPONSE_SENT);
@@ -312,9 +309,6 @@
if (!this.connStrategy.keepAlive(response, context)) {
conn.close();
- } else {
- // Ready for new request
- conn.requestInput();
}
} else {
connState.setOutputState(ServerConnState.RESPONSE_BODY_STREAM);
@@ -488,6 +482,9 @@
entity.writeTo(outstream);
outstream.flush();
outstream.close();
+ }
+ if (conn.isOpen()) {
+ conn.requestInput();
}
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java?view=diff&rev=549633&r1=549632&r2=549633
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/util/SharedOutputBuffer.java Thu Jun 21 15:23:04 2007
@@ -74,7 +74,7 @@
if (hasData()) {
bytesWritten = encoder.write(this.buffer);
if (encoder.isCompleted()) {
- this.endOfStream = false;
+ this.endOfStream = true;
}
}
if (!hasData()) {
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/test/java/org/apache/http/nio/protocol/TestNIOHttp.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/test/java/org/apache/http/nio/protocol/TestNIOHttp.java?view=diff&rev=549633&r1=549632&r2=549633
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/test/java/org/apache/http/nio/protocol/TestNIOHttp.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/test/java/org/apache/http/nio/protocol/TestNIOHttp.java Thu Jun 21 15:23:04 2007
@@ -157,21 +157,18 @@
TestNIOHttp test = (TestNIOHttp) en.nextElement();
suite.addTest(new ServerModeDecorator(test, MODE_BUFFERING, MODE_BUFFERING));
}
-
- // FIXME Commented out until HTTPCORE-83 is resolved
-
-// for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
-// TestNIOHttp test = (TestNIOHttp) en.nextElement();
-// suite.addTest(new ServerModeDecorator(test, MODE_THROTTLING, MODE_BUFFERING));
-// }
-// for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
-// TestNIOHttp test = (TestNIOHttp) en.nextElement();
-// suite.addTest(new ServerModeDecorator(test, MODE_BUFFERING, MODE_THROTTLING));
-// }
-// for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
-// TestNIOHttp test = (TestNIOHttp) en.nextElement();
-// suite.addTest(new ServerModeDecorator(test, MODE_THROTTLING, MODE_THROTTLING));
-// }
+ for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
+ TestNIOHttp test = (TestNIOHttp) en.nextElement();
+ suite.addTest(new ServerModeDecorator(test, MODE_THROTTLING, MODE_BUFFERING));
+ }
+ for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
+ TestNIOHttp test = (TestNIOHttp) en.nextElement();
+ suite.addTest(new ServerModeDecorator(test, MODE_BUFFERING, MODE_THROTTLING));
+ }
+ for (Enumeration en = source.tests(); en.hasMoreElements(); ) {
+ TestNIOHttp test = (TestNIOHttp) en.nextElement();
+ suite.addTest(new ServerModeDecorator(test, MODE_THROTTLING, MODE_THROTTLING));
+ }
return suite;
}
@@ -182,7 +179,7 @@
protected void setUp() throws Exception {
HttpParams serverParams = new BasicHttpParams();
serverParams
- .setIntParameter(HttpConnectionParams.SO_TIMEOUT, 2000)
+ .setIntParameter(HttpConnectionParams.SO_TIMEOUT, 5000)
.setIntParameter(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024)
.setBooleanParameter(HttpConnectionParams.STALE_CONNECTION_CHECK, false)
.setBooleanParameter(HttpConnectionParams.TCP_NODELAY, true)
@@ -192,7 +189,7 @@
HttpParams clientParams = new BasicHttpParams();
clientParams
- .setIntParameter(HttpConnectionParams.SO_TIMEOUT, 2000)
+ .setIntParameter(HttpConnectionParams.SO_TIMEOUT, 5000)
.setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 2000)
.setIntParameter(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024)
.setBooleanParameter(HttpConnectionParams.STALE_CONNECTION_CHECK, false)