Author: hiranya
Date: Thu Aug 15 01:36:54 2013
New Revision: 1514120
URL: http://svn.apache.org/r1514120
Log:
Fixing a race condition in SourceHandler - related to the failure in Sampe150
test case (WSDL generation)
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/ConnectionsView.java
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java?rev=1514120&r1=1514119&r2=1514120&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java
(original)
+++
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java
Thu Aug 15 01:36:54 2013
@@ -193,13 +193,15 @@ public class SourceHandler implements NH
synchronized (conn.getContext()) {
// SimpleOutputBuffer is not thread safe
// Explicit synchronization required
- int bytesWritten = outBuf.produceContent(encoder);
- if (metrics != null && bytesWritten > 0) {
- metrics.incrementBytesSent(bytesWritten);
+ if (outBuf.hasData()) {
+ int bytesWritten = outBuf.produceContent(encoder);
+ if (metrics != null && bytesWritten > 0) {
+ metrics.incrementBytesSent(bytesWritten);
+ }
}
conn.requestInput();
- if (!outBuf.hasData()) {
+ if (!outBuf.hasData() && encoder.isCompleted()) {
// We are done - At this point the entire response
payload has been
// written out to the SimpleOutputBuffer
sourceConfiguration.getSourceConnections().releaseConnection(conn);
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/ConnectionsView.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/ConnectionsView.java?rev=1514120&r1=1514119&r2=1514120&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/ConnectionsView.java
(original)
+++
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/ConnectionsView.java
Thu Aug 15 01:36:54 2013
@@ -229,7 +229,7 @@ public class ConnectionsView implements
}
/**
- * Return the number of total connections opened during last 'n' munites
+ * Return the number of total connections opened during last 'n' minutes
* of execution
*
* @param n Number of minutes in the execution history