Repository: tomee
Updated Branches:
  refs/heads/master d428b72bd -> b8bb20e7d


ensure to have right request inAsynContextWrapper


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/83901fea
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/83901fea
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/83901fea

Branch: refs/heads/master
Commit: 83901fea9798016fba854e85d6c0163c0bcd84da
Parents: d428b72
Author: Romain Manni-Bucau <[email protected]>
Authored: Fri Mar 20 13:34:41 2015 +0100
Committer: Romain Manni-Bucau <[email protected]>
Committed: Fri Mar 20 13:34:41 2015 +0100

----------------------------------------------------------------------
 .../openejb/server/httpd/HttpRequestImpl.java       |  2 +-
 .../apache/openejb/server/httpd/WebBeansFilter.java | 16 +++++++++-------
 tck/cdi-tomee/src/test/resources/failing.xml        |  6 +-----
 3 files changed, 11 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/83901fea/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
index 11702a0..3751ef0 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
@@ -1066,7 +1066,7 @@ public class HttpRequestImpl implements HttpRequest {
         final OpenEJBAsyncContext asyncContext = new 
OpenEJBAsyncContext(HttpServletRequest.class.cast(servletRequest) /* TODO */, 
servletResponse, contextPath);
         asyncContext.internalStartAsync();
         asyncStarted = true;
-        return new WebBeansFilter.AsynContextWrapper(asyncContext);
+        return new WebBeansFilter.AsynContextWrapper(asyncContext, 
servletRequest);
     }
 
     public String getParameter(String name) {

http://git-wip-us.apache.org/repos/asf/tomee/blob/83901fea/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansFilter.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansFilter.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansFilter.java
index a219e9e..f916c9d 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansFilter.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansFilter.java
@@ -63,24 +63,26 @@ public class WebBeansFilter implements Filter { // its 
pupose is to start/stop r
 
         @Override
         public AsyncContext startAsync() throws IllegalStateException {
-            return new AsynContextWrapper(super.startAsync());
+            return new AsynContextWrapper(super.startAsync(), getRequest());
         }
 
         @Override
         public AsyncContext startAsync(final ServletRequest servletRequest, 
final ServletResponse servletResponse) throws IllegalStateException {
-            return new AsynContextWrapper(super.startAsync(servletRequest, 
servletResponse));
+            return new AsynContextWrapper(super.startAsync(servletRequest, 
servletResponse), servletRequest);
         }
     }
 
     public static class AsynContextWrapper implements AsyncContext {
         private final AsyncContext delegate;
         private final CdiAppContextsService service;
+        private final ServletRequest request;
         private volatile ServletRequestEvent event;
 
-        public AsynContextWrapper(final AsyncContext asyncContext) {
+        public AsynContextWrapper(final AsyncContext asyncContext, final 
ServletRequest request) {
             this.delegate = asyncContext;
             this.service = 
CdiAppContextsService.class.cast(WebBeansContext.currentInstance().getService(ContextsService.class));
             this.event = null;
+            this.request = request;
         }
 
         private boolean startRequestScope() {
@@ -96,10 +98,10 @@ public class WebBeansFilter implements Filter { // its 
pupose is to start/stop r
         }
 
         private ServletRequestEvent getEvent() {
-            if (event == null || event.getServletRequest() != getRequest()) {
+            final ServletRequest request = getRequest();
+            if (event == null || event.getServletRequest() != request) {
                 synchronized (this) {
-                    if (event == null || event.getServletRequest() != 
getRequest()) {
-                        final ServletRequest request = delegate.getRequest();
+                    if (event == null || event.getServletRequest() != request) 
{
                         event = new 
ServletRequestEvent(request.getServletContext(), request);
                     }
                 }
@@ -109,7 +111,7 @@ public class WebBeansFilter implements Filter { // its 
pupose is to start/stop r
 
         @Override
         public ServletRequest getRequest() {
-            return delegate.getRequest();
+            return request;
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/tomee/blob/83901fea/tck/cdi-tomee/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-tomee/src/test/resources/failing.xml 
b/tck/cdi-tomee/src/test/resources/failing.xml
index 3495506..3149dc7 100644
--- a/tck/cdi-tomee/src/test/resources/failing.xml
+++ b/tck/cdi-tomee/src/test/resources/failing.xml
@@ -25,10 +25,6 @@
     <classes>
       <!--
   ConversationFilterTest>Arquillian.run:164->testConversationBusy:133 expected 
[BusyConversationException] but found [500]
-  DataSourcePassivationDependencyTest>Arquillian.run:164->testDataSource:68 » 
IllegalProduct
-  
RequestContextTest>Arquillian.run:164->testRequestScopeActiveDuringServiceMethod:62
 » FailingHttpStatusCode
-  
RequestContextTest>Arquillian.run:164->testRequestScopeActiveDuringServletFilter:73
 » FailingHttpStatusCode
-  
RequestContextTest>Arquillian.run:164->testRequestScopeIsDestroyedAfterServletRequest:89
 » FailingHttpStatusCode
   
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnComplete:65
 expected [true] but found [false]
   
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnError:93
 expected [true] but found [false]
   
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnStartAsync:102
 expected [true] but found [false]
@@ -54,7 +50,7 @@
   
DisabledProducerMethodInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109
 » Runtime
   
DisabledSessionBeanInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109
 » Runtime
   -->
-      <class 
name="org.jboss.cdi.tck.tests.context.passivating.dependency.resource.persistence.DataSourcePassivationDependencyTest"
 />
+      <class 
name="org.jboss.cdi.tck.tests.context.request.async.RequestContextAsyncListenerTest"
 />
     </classes>
   </test>
 </suite>

Reply via email to