Author: dkulp
Date: Fri Jun 13 10:57:12 2008
New Revision: 667606
URL: http://svn.apache.org/viewvc?rev=667606&view=rev
Log:
Merged revisions 667605 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r667605 | dkulp | 2008-06-13 13:53:55 -0400 (Fri, 13 Jun 2008) | 2 lines
[CXF-1649] Possible fix for some race conditions in the Local transport by
copying the map on the same thread that would be writing to it.
........
Modified:
cxf/branches/2.0.x-fixes/ (props changed)
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java?rev=667606&r1=667605&r2=667606&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
Fri Jun 13 10:57:12 2008
@@ -117,14 +117,15 @@
final PipedInputStream stream = new PipedInputStream();
wrappedStream = new PipedOutputStream(stream);
+ final MessageImpl inMsg = new MessageImpl();
+ transportFactory.copy(message, inMsg);
+
+ inMsg.setContent(InputStream.class, stream);
+ inMsg.setDestination(destination);
+ inMsg.put(IN_CONDUIT, conduit);
+
final Runnable receiver = new Runnable() {
- public void run() {
- MessageImpl inMsg = new MessageImpl();
- transportFactory.copy(message, inMsg);
- inMsg.setContent(InputStream.class, stream);
- inMsg.setDestination(destination);
- inMsg.put(IN_CONDUIT, conduit);
-
+ public void run() {
ExchangeImpl ex = new ExchangeImpl();
ex.setInMessage(inMsg);
ex.put(IN_EXCHANGE, exchange);
Modified:
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java?rev=667606&r1=667605&r2=667606&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
Fri Jun 13 10:57:12 2008
@@ -84,16 +84,16 @@
protected void onFirstWrite() throws IOException {
final PipedInputStream stream = new
PipedInputStream();
wrappedStream = new PipedOutputStream(stream);
-
+
+ final MessageImpl m = new MessageImpl();
+ localDestinationFactory.copy(message, m);
+ m.setContent(InputStream.class, stream);
+
final Runnable receiver = new Runnable() {
- public void run() {
- MessageImpl m = new MessageImpl();
- localDestinationFactory.copy(message, m);
-
+ public void run() {
if (exchange != null) {
exchange.setInMessage(m);
}
- m.setContent(InputStream.class, stream);
conduit.getMessageObserver().onMessage(m);
}
};