You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/06/06 21:31:14 UTC
svn commit: r544926 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/endpoint/
rt/core/src/main/java/org/apache/cxf/clustering/
rt/core/src/main/java/org/apache/cxf/transport/
rt/transports/local/src/main/java/org/apache/cxf/transport/local/
Author: dkulp
Date: Wed Jun 6 12:31:12 2007
New Revision: 544926
URL: http://svn.apache.org/viewvc?view=rev&rev=544926
Log:
Make sure conduit.close(Message) is called on client side to close the streams
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/DeferredConduitSelector.java
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/UpfrontConduitSelector.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractConduit.java
incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/AbstractConduitSelector.java Wed Jun 6 12:31:12 2007
@@ -118,6 +118,21 @@
return exchange.get(Bus.class);
}
+
+ /**
+ * Called on completion of the MEP for which the Conduit was required.
+ *
+ * @param exchange represents the completed MEP
+ */
+ public void complete(Exchange exchange) {
+ try {
+ if (exchange.getInMessage() != null) {
+ getSelectedConduit(exchange.getInMessage()).close(exchange.getInMessage());
+ }
+ } catch (IOException e) {
+ //IGNORE
+ }
+ }
/**
* @return the logger to use
*/
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/DeferredConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/DeferredConduitSelector.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/DeferredConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/DeferredConduitSelector.java Wed Jun 6 12:31:12 2007
@@ -22,7 +22,6 @@
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.Conduit;
@@ -68,15 +67,6 @@
*/
public Conduit selectConduit(Message message) {
return getSelectedConduit(message);
- }
-
- /**
- * Called on completion of the MEP for which the Conduit was required.
- *
- * @param exchange represents the completed MEP
- */
- public void complete(Exchange exchange) {
- // nothing to do
}
/**
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/PreexistingConduitSelector.java Wed Jun 6 12:31:12 2007
@@ -19,6 +19,8 @@
package org.apache.cxf.endpoint;
+import java.io.IOException;
+
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.Conduit;
@@ -84,7 +86,13 @@
* @param exchange represents the completed MEP
*/
public void complete(Exchange exchange) {
- // nothing to do
+ try {
+ if (exchange.getInMessage() != null) {
+ selectedConduit.close(exchange.getInMessage());
+ }
+ } catch (IOException e) {
+ //IGNORE
+ }
}
/**
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/UpfrontConduitSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/UpfrontConduitSelector.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/UpfrontConduitSelector.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/endpoint/UpfrontConduitSelector.java Wed Jun 6 12:31:12 2007
@@ -23,7 +23,6 @@
//import org.apache.cxf.Bus;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.transport.Conduit;
@@ -70,15 +69,6 @@
*/
public Conduit selectConduit(Message message) {
return getSelectedConduit(message);
- }
-
- /**
- * Called on completion of the MEP for which the Conduit was required.
- *
- * @param exchange represents the completed MEP
- */
- public void complete(Exchange exchange) {
- // nothing to do
}
/**
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java Wed Jun 6 12:31:12 2007
@@ -159,6 +159,7 @@
synchronized (this) {
inProgress.remove(key);
}
+ super.complete(exchange);
}
}
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractConduit.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractConduit.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractConduit.java Wed Jun 6 12:31:12 2007
@@ -20,6 +20,7 @@
package org.apache.cxf.transport;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import org.apache.cxf.message.Message;
@@ -57,12 +58,16 @@
}
/**
- * @param message for which content shoul dbe closed.
+ * @param message for which content should be closed.
*/
public void close(Message msg) throws IOException {
OutputStream os = msg.getContent(OutputStream.class);
if (os != null) {
os.close();
+ }
+ InputStream in = msg.getContent(InputStream.class);
+ if (in != null) {
+ in.close();
}
}
Modified: incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java?view=diff&rev=544926&r1=544925&r2=544926
==============================================================================
--- incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java Wed Jun 6 12:31:12 2007
@@ -64,7 +64,8 @@
@Override
public void close(Message message) throws IOException {
- if (Boolean.TRUE.equals(message.get(DIRECT_DISPATCH))) {
+ if (Boolean.TRUE.equals(message.get(DIRECT_DISPATCH))
+ && !Boolean.TRUE.equals(message.get(Message.INBOUND_MESSAGE))) {
dispatchDirect(message);
}