Hi,

I've just tried build "apache-tomee-1.5.2-20130201.041145-56-plus.zip" from Feb 
1. The described problem does not occur any more. Unfortunately, the changes 
seems to break another functionality. I have a WeSocket servlet, which also 
injects a SessionScoped bean:

@WebServlet(urlPatterns = "/events")
public class WebSocket extends WebSocketServlet {

        @Inject
        @LoggedIn
        private Instance<User> currentUser;

        /**
         * @see 
org.apache.catalina.websocket.WebSocketServlet#createWebSocketInbound(java.lang.String,
         *      javax.servlet.http.HttpServletRequest)
         */
        @Override
        protected StreamInbound createWebSocketInbound(String arg0,
                        HttpServletRequest request) {

                final User user = currentUser.get();
                if (user != null) {
                        try {
                                return new Inbound();
                        } catch (JMSException ex) {
                                throw new RuntimeException(ex);
                        }
                }
                return null;
        }
...
}

Now I'm getting the following error:

javax.enterprise.context.ContextNotActiveException: WebBeans context with scope 
type annotation @SessionScoped does not exist within current thread
        at 
org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:351)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:143)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108)
        at 
de.technology.serviceportal.backend.security.Login_$$_javassist_3.getLoggedInUser(Login_$$_javassist_3.java)
        at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:139)
        at 
org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:161)
        at 
org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:123)
        at 
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
        at 
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:77)
        at 
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:133)
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
        at 
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:70)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
        at 
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:872)
        at 
org.apache.webbeans.inject.instance.InstanceImpl.get(InstanceImpl.java:131)
        at 
de.technology.serviceportal.backend.eventing.WebSocket$Inbound.onTextMessage(WebSocket.java:163)
        at 
org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:74)
        at 
org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:186)
        at 
org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:134)
        at 
org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:83)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:587)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)


Best, 

Todor


With the TomEE 1.5.1 release this works just fine.


On 31.01.2013, at 09:34, Romain Manni-Bucau <[email protected]> wrote:

> double post?
> 
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
> 
> 
> 
> 2013/1/31 Todor Dimitrov <[email protected]>
> 
>> Hi,
>> 
>> it seems there is a problem with the session thread-locals, which are not
>> being cleared when a HTTP request ends. Please have a look at this
>> OpenWebBeans thread for further details:
>> 
>> 
>> http://mail-archives.apache.org/mod_mbox/openwebbeans-user/201301.mbox/%[email protected]%3e
>> 
>> 
>> Best,
>> 
>> Todor

Reply via email to