You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Karl Kildén (JIRA)" <ji...@apache.org> on 2013/10/30 09:27:28 UTC

[jira] [Updated] (OWB-910) @PreDestroy causes ContextNotActiveException

     [ https://issues.apache.org/jira/browse/OWB-910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karl Kildén updated OWB-910:
----------------------------

    Description: 
I had a single session, as it timed out I got the following exception:

[quote]SEVERE: Exception thrown while destroying bean instance : [SessionBean, Name:sessionBean, WebBeans Type:MANAGED, API Types:[com.company.myapp.bean.SessionBean,com.company.myapp.bean.BaseBean,java.io.Serializable,java.lang.Object], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
	at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:334)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:88)
	at org.apache.webbeans.web.intercept.RequestScopedBeanInterceptorHandler.getContextualInstance(RequestScopedBeanInterceptorHandler.java:78)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:70)
	at org.apache.webbeans.custom.faces.context.ExternalContext$$OwbNormalScopeProxy0.getResponse(javax/faces/context/ExternalContext.java)
	at com.company.myapp.bean.SessionBean.cleanup(SessionBean.java:124)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.webbeans.intercept.LifecycleInterceptorInvocationContext.proceed(LifecycleInterceptorInvocationContext.java:102)
	at org.apache.webbeans.portable.InjectionTargetImpl.preDestroy(InjectionTargetImpl.java:418)
	at org.apache.webbeans.component.AbstractOwbBean.destroy(AbstractOwbBean.java:178)
	at org.apache.webbeans.context.AbstractContext.destroyInstance(AbstractContext.java:177)
	at org.apache.webbeans.context.AbstractContext.destroy(AbstractContext.java:202)
	at org.apache.webbeans.web.context.WebContextsService.destroySessionContext(WebContextsService.java:503)
	at org.apache.webbeans.web.context.WebContextsService.endContext(WebContextsService.java:209)
	at org.apache.webbeans.servlet.WebBeansConfigurationListener.sessionDestroyed(WebBeansConfigurationListener.java:201)
	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:806)
	at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:658)
	at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:534)
	at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:519)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1352)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
	at java.lang.Thread.run(Thread.java:722)[quote]

SessionBean uses @PreDestroy and does some cookie stuff using externalContext.

  was:
I had a single session, as it timed out I got the following exception:

{quote}SEVERE: Exception thrown while destroying bean instance : [SessionBean, Name:sessionBean, WebBeans Type:MANAGED, API Types:[com.company.myapp.bean.SessionBean,com.company.myapp.bean.BaseBean,java.io.Serializable,java.lang.Object], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
	at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:334)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:88)
	at org.apache.webbeans.web.intercept.RequestScopedBeanInterceptorHandler.getContextualInstance(RequestScopedBeanInterceptorHandler.java:78)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:70)
	at org.apache.webbeans.custom.faces.context.ExternalContext$$OwbNormalScopeProxy0.getResponse(javax/faces/context/ExternalContext.java)
	at com.company.myapp.bean.SessionBean.cleanup(SessionBean.java:124)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.webbeans.intercept.LifecycleInterceptorInvocationContext.proceed(LifecycleInterceptorInvocationContext.java:102)
	at org.apache.webbeans.portable.InjectionTargetImpl.preDestroy(InjectionTargetImpl.java:418)
	at org.apache.webbeans.component.AbstractOwbBean.destroy(AbstractOwbBean.java:178)
	at org.apache.webbeans.context.AbstractContext.destroyInstance(AbstractContext.java:177)
	at org.apache.webbeans.context.AbstractContext.destroy(AbstractContext.java:202)
	at org.apache.webbeans.web.context.WebContextsService.destroySessionContext(WebContextsService.java:503)
	at org.apache.webbeans.web.context.WebContextsService.endContext(WebContextsService.java:209)
	at org.apache.webbeans.servlet.WebBeansConfigurationListener.sessionDestroyed(WebBeansConfigurationListener.java:201)
	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:806)
	at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:658)
	at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:534)
	at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:519)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1352)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
	at java.lang.Thread.run(Thread.java:722){quote}

SessionBean uses @PreDestroy and does some cookie stuff using externalContext.


> @PreDestroy causes ContextNotActiveException
> --------------------------------------------
>
>                 Key: OWB-910
>                 URL: https://issues.apache.org/jira/browse/OWB-910
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>         Environment: Tomcat 7, Myfaces 2.1.11, OWB 1.2.0
>            Reporter: Karl Kildén
>
> I had a single session, as it timed out I got the following exception:
> [quote]SEVERE: Exception thrown while destroying bean instance : [SessionBean, Name:sessionBean, WebBeans Type:MANAGED, API Types:[com.company.myapp.bean.SessionBean,com.company.myapp.bean.BaseBean,java.io.Serializable,java.lang.Object], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default,javax.inject.Named]]
> javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
> 	at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:334)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:88)
> 	at org.apache.webbeans.web.intercept.RequestScopedBeanInterceptorHandler.getContextualInstance(RequestScopedBeanInterceptorHandler.java:78)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:70)
> 	at org.apache.webbeans.custom.faces.context.ExternalContext$$OwbNormalScopeProxy0.getResponse(javax/faces/context/ExternalContext.java)
> 	at com.company.myapp.bean.SessionBean.cleanup(SessionBean.java:124)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:601)
> 	at org.apache.webbeans.intercept.LifecycleInterceptorInvocationContext.proceed(LifecycleInterceptorInvocationContext.java:102)
> 	at org.apache.webbeans.portable.InjectionTargetImpl.preDestroy(InjectionTargetImpl.java:418)
> 	at org.apache.webbeans.component.AbstractOwbBean.destroy(AbstractOwbBean.java:178)
> 	at org.apache.webbeans.context.AbstractContext.destroyInstance(AbstractContext.java:177)
> 	at org.apache.webbeans.context.AbstractContext.destroy(AbstractContext.java:202)
> 	at org.apache.webbeans.web.context.WebContextsService.destroySessionContext(WebContextsService.java:503)
> 	at org.apache.webbeans.web.context.WebContextsService.endContext(WebContextsService.java:209)
> 	at org.apache.webbeans.servlet.WebBeansConfigurationListener.sessionDestroyed(WebBeansConfigurationListener.java:201)
> 	at org.apache.catalina.session.StandardSession.expire(StandardSession.java:806)
> 	at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:658)
> 	at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:534)
> 	at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:519)
> 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1352)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
> 	at java.lang.Thread.run(Thread.java:722)[quote]
> SessionBean uses @PreDestroy and does some cookie stuff using externalContext.



--
This message was sent by Atlassian JIRA
(v6.1#6144)