This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwebbeans.git
The following commit(s) were added to refs/heads/master by this push: new a99f560 OWB-1313 ensure RequestContextController impl is thread safe a99f560 is described below commit a99f5606590db09a9a083a5aaf690c6f1ad856e3 Author: Romain Manni-Bucau <rmannibu...@gmail.com> AuthorDate: Tue Feb 11 14:15:38 2020 +0100 OWB-1313 ensure RequestContextController impl is thread safe --- .../control/OwbRequestContextController.java | 25 ++++++++-------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/webbeans-impl/src/main/java/org/apache/webbeans/context/control/OwbRequestContextController.java b/webbeans-impl/src/main/java/org/apache/webbeans/context/control/OwbRequestContextController.java index 5bc30b5..d48852b 100644 --- a/webbeans-impl/src/main/java/org/apache/webbeans/context/control/OwbRequestContextController.java +++ b/webbeans-impl/src/main/java/org/apache/webbeans/context/control/OwbRequestContextController.java @@ -20,6 +20,8 @@ package org.apache.webbeans.context.control; import org.apache.webbeans.config.WebBeansContext; +import org.apache.webbeans.intercept.RequestScopedBeanInterceptorHandler; +import org.apache.webbeans.spi.ContextsService; import javax.enterprise.context.ContextNotActiveException; import javax.enterprise.context.RequestScoped; @@ -28,26 +30,20 @@ import javax.enterprise.context.spi.Context; public class OwbRequestContextController implements RequestContextController { - private final WebBeansContext context; - private Object startParam = null; + private final ContextsService contextsService; OwbRequestContextController(WebBeansContext context) { - this.context = context; + this.contextsService = context.getContextsService(); } @Override public boolean activate() { - if (startParam != null) + final Context ctx = contextsService.getCurrentContext(RequestScoped.class); + if (ctx == null || !ctx.isActive()) { - return false; - } - Context ctx = context.getContextsService().getCurrentContext(RequestScoped.class); - if (ctx == null) - { - startParam = new Object(); - context.getContextsService().startContext(RequestScoped.class, startParam); + contextsService.startContext(RequestScoped.class, null); return true; } return false; @@ -56,10 +52,7 @@ public class OwbRequestContextController implements RequestContextController @Override public void deactivate() throws ContextNotActiveException { - if (startParam != null) - { - context.getContextsService().endContext(RequestScoped.class, startParam); - startParam = null; - } + contextsService.endContext(RequestScoped.class, null); + RequestScopedBeanInterceptorHandler.removeThreadLocals(); } }