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>
