Author: ningjiang
Date: Mon Mar 28 05:09:26 2011
New Revision: 1086121
URL: http://svn.apache.org/viewvc?rev=1086121&view=rev
Log:
Merged revisions 1086115 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1086115 | ningjiang | 2011-03-28 12:11:39 +0800 (Mon, 28 Mar 2011) | 1 line
CXF-3427 JMSContinuation should be thread safe
........
Modified:
cxf/branches/2.3.x-fixes/ (props changed)
cxf/branches/2.3.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
cxf/branches/2.3.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 05:09:26 2011
@@ -1 +1 @@
-/cxf/trunk:1084966,1086102
+/cxf/trunk:1084966,1086102,1086115
Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.3.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java?rev=1086121&r1=1086120&r2=1086121&view=diff
==============================================================================
---
cxf/branches/2.3.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
(original)
+++
cxf/branches/2.3.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
Mon Mar 28 05:09:26 2011
@@ -30,13 +30,13 @@ import org.eclipse.jetty.server.AsyncCon
import org.eclipse.jetty.server.Request;
public class JettyContinuationWrapper implements Continuation,
ContinuationListener {
- boolean isNew;
- boolean isResumed;
- boolean isPending;
- Object obj;
+ volatile boolean isNew;
+ volatile boolean isResumed;
+ volatile boolean isPending;
+ volatile Object obj;
private Message message;
- private AsyncContext context;
+ private final AsyncContext context;
private final Request req;
public JettyContinuationWrapper(HttpServletRequest request,
Modified:
cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java?rev=1086121&r1=1086120&r2=1086121&view=diff
==============================================================================
---
cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
(original)
+++
cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
Mon Mar 28 05:09:26 2011
@@ -62,11 +62,11 @@ public class Servlet3ContinuationProvide
}
public class Servlet3Continuation implements Continuation, AsyncListener {
- AsyncContext context;
- boolean isNew;
- boolean isResumed;
- boolean isPending;
- Object obj;
+ final AsyncContext context;
+ volatile boolean isNew;
+ volatile boolean isResumed;
+ volatile boolean isPending;
+ volatile Object obj;
public Servlet3Continuation() {
// It looks current Servlet3 implementation request doesn't pass
the isAsyncStart
Modified:
cxf/branches/2.3.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java?rev=1086121&r1=1086120&r2=1086121&view=diff
==============================================================================
---
cxf/branches/2.3.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
(original)
+++
cxf/branches/2.3.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
Mon Mar 28 05:09:26 2011
@@ -41,11 +41,11 @@ public class JMSContinuation implements
private AbstractMessageListenerContainer jmsListener;
private JMSConfiguration jmsConfig;
- private Object userObject;
+ private volatile Object userObject;
- private boolean isNew = true;
- private boolean isPending;
- private boolean isResumed;
+ private volatile boolean isNew = true;
+ private volatile boolean isPending;
+ private volatile boolean isResumed;
private Timer timer;
public JMSContinuation(Bus b, Message m, MessageObserver observer,
@@ -93,7 +93,7 @@ public class JMSContinuation implements
doResume();
}
- protected void doResume() {
+ protected synchronized void doResume() {
updateContinuations(true);
BusFactory.setThreadDefaultBus(bus);
try {