You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2018/03/02 07:01:36 UTC
[cxf] branch 3.1.x-fixes updated: [CXF-7661]add isTimeout flag for
Continutation so that we can easily know when the timeout happen outside
CXF
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.1.x-fixes by this push:
new 9b8365a [CXF-7661]add isTimeout flag for Continutation so that we can easily know when the timeout happen outside CXF
9b8365a is described below
commit 9b8365aab75b6cda05fa1277f70c7bd4d24a4bf5
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Thu Mar 1 18:04:27 2018 +0800
[CXF-7661]add isTimeout flag for Continutation so that we can easily know when the timeout happen outside CXF
(cherry picked from commit e791b0b8e69ee4368db88607ce00d53fdfcbf180)
Conflicts:
core/src/main/java/org/apache/cxf/continuations/Continuation.java
rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
---
.../main/java/org/apache/cxf/continuations/Continuation.java | 8 +++++++-
.../http_jetty/continuations/JettyContinuationWrapper.java | 11 ++++++++++-
.../cxf/transport/http/Servlet3ContinuationProvider.java | 10 ++++++++--
.../cxf/transport/jms/continuations/JMSContinuation.java | 5 +++++
4 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/core/src/main/java/org/apache/cxf/continuations/Continuation.java b/core/src/main/java/org/apache/cxf/continuations/Continuation.java
index 08955d1..fc603f9 100644
--- a/core/src/main/java/org/apache/cxf/continuations/Continuation.java
+++ b/core/src/main/java/org/apache/cxf/continuations/Continuation.java
@@ -62,7 +62,13 @@ public interface Continuation {
*/
boolean isResumed();
- /**
+ /**
+ * Get the timeout status
+ * @return true if the continuation is has been timeout.
+ */
+ boolean isTimeout();
+
+ /**
* Get arbitrary object associated with the continuation for context
*
* @return An arbitrary object associated with the continuation
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
index 3c83170..b543b22 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
@@ -19,6 +19,7 @@
package org.apache.cxf.transport.http_jetty.continuations;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -33,6 +34,7 @@ public class JettyContinuationWrapper implements Continuation, ContinuationListe
volatile boolean isNew;
volatile boolean isResumed;
volatile boolean isPending;
+ volatile boolean isTimeout;
volatile long pendingTimeout;
volatile Object obj;
@@ -93,6 +95,7 @@ public class JettyContinuationWrapper implements Continuation, ContinuationListe
}
obj = null;
pendingTimeout = 0;
+ isTimeout = false;
}
@@ -137,6 +140,12 @@ public class JettyContinuationWrapper implements Continuation, ContinuationListe
isPending = false;
pendingTimeout = 0;
isResumed = true;
+ isTimeout = true;
}
-
+
+ @Override
+ public boolean isTimeout() {
+ return isTimeout;
+ }
+
}
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
index 51be32a..01ba2b0 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Servlet3ContinuationProvider.java
@@ -79,6 +79,7 @@ public class Servlet3ContinuationProvider implements ContinuationProvider {
volatile boolean isResumed;
volatile boolean isPending;
volatile boolean isComplete;
+ volatile boolean isTimeout;
volatile Object obj;
private ContinuationCallback callback;
private boolean blockRestart;
@@ -141,7 +142,7 @@ public class Servlet3ContinuationProvider implements ContinuationProvider {
isPending = false;
isResumed = false;
isNew = false;
-
+ isTimeout = false;
obj = null;
if (callback != null) {
final Exception ex = inMessage.getExchange().get(Exception.class);
@@ -196,6 +197,7 @@ public class Servlet3ContinuationProvider implements ContinuationProvider {
}
public void onTimeout(AsyncEvent event) throws IOException {
resume();
+ isTimeout = true;
}
private Throwable isCausedByIO(final Exception ex) {
@@ -216,6 +218,10 @@ public class Servlet3ContinuationProvider implements ContinuationProvider {
return false;
}
}
-
+
+ @Override
+ public boolean isTimeout() {
+ return isTimeout;
+ }
}
}
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
index b56ee84..ba20aa2 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java
@@ -158,4 +158,9 @@ public class JMSContinuation implements Continuation {
}
+ @Override
+ public boolean isTimeout() {
+ return false;
+ }
+
}
--
To stop receiving notification emails like this one, please contact
ffang@apache.org.