You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Jan-Kees van Andel (JIRA)" <de...@myfaces.apache.org> on 2010/11/21 15:31:13 UTC

[jira] Created: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Session invalidation in Development Stage causes error in OpenWebBeans
----------------------------------------------------------------------

                 Key: MYFACES-2979
                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
             Project: MyFaces Core
          Issue Type: Bug
          Components: JSR-314
    Affects Versions: 2.0.3-SNAPSHOT
         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
            Reporter: Jan-Kees van Andel


I have a logout method, shown below:

    public String logout() {
        final FacesContext fc = FacesContext.getCurrentInstance();
        final ExternalContext externalContext = fc.getExternalContext();
        try {
            externalContext.invalidateSession();
            externalContext.redirect("http://www.google.nl");
        } catch (IOException e) {
            log.error("Error redirecting after logout", e);
        } finally {
            fc.responseComplete();
        }
        return null;
    }

When I invoke this method, I get the following Exception from OpenWebBeans:

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:309)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)

This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.

It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934930#action_12934930 ] 

Leonardo Uribe commented on MYFACES-2979:
-----------------------------------------

Yes, thinking more about it, in theory, in JSF 2.0 it should be possible to show more than one exception, so other alternative we could consider in this case is use publishException only if an exception was already thrown, but just logging them is ok.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Issue Comment Edited] (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Simon Godard (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010887#comment-13010887 ] 

Simon Godard edited comment on MYFACES-2979 at 3/24/11 8:09 PM:
----------------------------------------------------------------

I'm experiencing the same problem although I'm not using OWB.

java.lang.IllegalStateException: org.apache.shiro.session.UnknownSessionException: There is no session with id [bc6066fc-96e5-43ee-bf56-951201b5e702]
	org.apache.shiro.web.servlet.ShiroHttpSession.getAttribute(ShiroHttpSession.java:133)
	org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:50)
	org.apache.myfaces.util.AbstractThreadSafeAttributeMap.containsKey(AbstractThreadSafeAttributeMap.java:58)
	org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:192)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65)
	org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:116)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
	org.apache.el.parser.AstValue.getValue(AstValue.java:112)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
	javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
	javax.faces.component.UIOutput.getValue(UIOutput.java:71)
	javax.faces.component.UIInput.getValue(UIInput.java:143)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback._getRealValue(DebugPhaseListener.java:264)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback.visit(DebugPhaseListener.java:187)
	org.apache.myfaces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:139)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:773)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UINamingContainer.visitTree(UINamingContainer.java:162)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
	org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)


      was (Author: godardsi):
    I'm experiencing the same problem although I'm not using OWB.
{code}
java.lang.IllegalStateException: org.apache.shiro.session.UnknownSessionException: There is no session with id [bc6066fc-96e5-43ee-bf56-951201b5e702]
	org.apache.shiro.web.servlet.ShiroHttpSession.getAttribute(ShiroHttpSession.java:133)
	org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:50)
	org.apache.myfaces.util.AbstractThreadSafeAttributeMap.containsKey(AbstractThreadSafeAttributeMap.java:58)
	org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:192)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65)
	org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:116)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
	org.apache.el.parser.AstValue.getValue(AstValue.java:112)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
	javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
	javax.faces.component.UIOutput.getValue(UIOutput.java:71)
	javax.faces.component.UIInput.getValue(UIInput.java:143)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback._getRealValue(DebugPhaseListener.java:264)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback.visit(DebugPhaseListener.java:187)
	org.apache.myfaces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:139)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:773)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UINamingContainer.visitTree(UINamingContainer.java:162)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
	org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
{code}
  
> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934881#action_12934881 ] 

Leonardo Uribe commented on MYFACES-2979:
-----------------------------------------

Maybe that one suggest that the behavior committed on MYFACES-2676 should be optional, or maybe we should do something different instead evaluate ValueExpression bound to value properties. Maybe for debugging purposes, at first view it is enough to know the "submittedValue" and "localValue". Evaluate "value" VE seems to be redundant, its more, for that one it is more interesting to print the expression string on debug page.



> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934892#action_12934892 ] 

Leonardo Uribe commented on MYFACES-2979:
-----------------------------------------

Ok, but anyway it is caused by an unexpected EL evaluation. In that case, DebugPhaseListener should swallow the exception and let code continue, so maybe we need to add some code in that part. Instead use visit tree hint for skip unrendered, why don't check for that condition on DebugVisitCallback, so if we can't evaluate it we can decide if we include it or not? Since this feature is not intended for production, it is not a problem to do some additional cycles.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Bastian Voigt (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13039014#comment-13039014 ] 

Bastian Voigt commented on MYFACES-2979:
----------------------------------------

This is not only a OpenWebBeans problem. It also occurs in my application:

Action method:
    public String logout() {
        getSessionUtil().invalidateSession();
        this.loggedIn = false;
        return "logout";
    }

faces-config:
		<from-view-id>/*</from-view-id>
		<navigation-case>
			<from-outcome>logout</from-outcome>
			<to-view-id>/presentation/login.xhtml</to-view-id>
			<redirect/>
		</navigation-case>

Exception (only occurs in stage Development):

SCHWERWIEGEND: Servlet.service() for servlet faces-servlet threw exception
java.lang.IllegalStateException
	at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:126)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.redirect(ServletExternalContextImpl.java:463)
	at javax.faces.context.ExternalContextWrapper.redirect(ExternalContextWrapper.java:388)
	at org.apache.myfaces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:128)
	at com.conergy.sunreader.faces.exceptionhandler.SunreaderExceptionHandler.handleGenericException(SunreaderExceptionHandler.java:62)
	at com.conergy.sunreader.faces.exceptionhandler.SunreaderExceptionHandler.handle(SunreaderExceptionHandler.java:46)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.conergy.sunreader.filter.EncodingFilter.doFilter(EncodingFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:679)

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Jakob Korherr (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934297#action_12934297 ] 

Jakob Korherr commented on MYFACES-2979:
----------------------------------------

Yes, you're right. +1 on committing the patch!

However, we will maybe see some more side effects of the DebugPhaseListener.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Jan-Kees van Andel (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934293#action_12934293 ] 

Jan-Kees van Andel commented on MYFACES-2979:
---------------------------------------------

IMHO, that would be an unwanted side effect of the PhaseListener.

I'm not sure what the spec says about this (I guess nothing), but recreating a session within the same request that invalidated it, would be pretty bad behavior if you ask me...

The annoying bit is, if we choose to add a check in the PhaseListener, there might be other checks we need to add there.

I suggest to fix it in the PhaseListener, to keep it as much side-effect-free as possible.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Jakob Korherr (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934289#action_12934289 ] 

Jakob Korherr commented on MYFACES-2979:
----------------------------------------

I know the DebugPhaseListener is the reason why this does not work, but shouldn't OWB be able to create a new session once the old one is invalidated rather than throwing a ContextNotActiveException?

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Jakob Korherr (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934882#action_12934882 ] 

Jakob Korherr commented on MYFACES-2979:
----------------------------------------

Leo,

The problem is not that the ValueExpressions cannot be evaluated while building the debug page. The problem is that visitTree() does not work because of a isRendered() evaluation (which leads to a ValueExpression evaluation of rendered="#{...}").

If a "normal" value="#{...}" ValueExpression can't be evaluated, the exception is catched by the DebugPhaseListener.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Jakob Korherr (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934903#action_12934903 ] 

Jakob Korherr commented on MYFACES-2979:
----------------------------------------

Yes, that's a great idea.

Also a try{ } catch { // just logging, no re-throwing } around the DebugPhaseListener code would be good. In this way we prevent letting Exceptions in DebugPhaseListener break MyFaces.

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (MYFACES-2979) Session invalidation in Development Stage causes error in OpenWebBeans

Posted by "Simon Godard (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/MYFACES-2979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010887#comment-13010887 ] 

Simon Godard commented on MYFACES-2979:
---------------------------------------

I'm experiencing the same problem although I'm not using OWB.
{code}
java.lang.IllegalStateException: org.apache.shiro.session.UnknownSessionException: There is no session with id [bc6066fc-96e5-43ee-bf56-951201b5e702]
	org.apache.shiro.web.servlet.ShiroHttpSession.getAttribute(ShiroHttpSession.java:133)
	org.apache.myfaces.context.servlet.SessionMap.getAttribute(SessionMap.java:50)
	org.apache.myfaces.util.AbstractThreadSafeAttributeMap.containsKey(AbstractThreadSafeAttributeMap.java:58)
	org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:192)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:65)
	org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:116)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
	org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
	org.apache.el.parser.AstValue.getValue(AstValue.java:112)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
	javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
	javax.faces.component.UIOutput.getValue(UIOutput.java:71)
	javax.faces.component.UIInput.getValue(UIInput.java:143)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback._getRealValue(DebugPhaseListener.java:264)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener$DebugVisitCallback.visit(DebugPhaseListener.java:187)
	org.apache.myfaces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:139)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:773)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UINamingContainer.visitTree(UINamingContainer.java:162)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	javax.faces.component.UIComponent.visitTree(UIComponent.java:793)
	javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
	org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
	org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
{code}

> Session invalidation in Development Stage causes error in OpenWebBeans
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-2979
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2979
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.3-SNAPSHOT
>         Environment: MyFaces 2.0.3-SNAPSHOT in Dev mode, OpenWebBeans 1.0.0, Tomcat 6.0.29 (with Glassfish EL 2.2)
>            Reporter: Jan-Kees van Andel
>         Attachments: debugphaselistener.patch
>
>
> I have a logout method, shown below:
>     public String logout() {
>         final FacesContext fc = FacesContext.getCurrentInstance();
>         final ExternalContext externalContext = fc.getExternalContext();
>         try {
>             externalContext.invalidateSession();
>             externalContext.redirect("http://www.google.nl");
>         } catch (IOException e) {
>             log.error("Error redirecting after logout", e);
>         } finally {
>             fc.responseComplete();
>         }
>         return null;
>     }
> When I invoke this method, I get the following Exception from OpenWebBeans:
> 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:309)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.examples.ebanking.web.bean.SessionBean_$$_javassist_2.getCustomer(SessionBean_$$_javassist_2.java)
> 	at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
> 	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
> 	at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.webbeans.el.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
> 	at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:260)
> 	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1007)
> 	at javax.faces.component.UIComponent.isVisitable(UIComponent.java:289)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:752)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at javax.faces.component.UIComponent.visitTree(UIComponent.java:778)
> 	at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:991)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener._doTreeVisit(DebugPhaseListener.java:310)
> 	at org.apache.myfaces.view.facelets.tag.ui.DebugPhaseListener.afterPhase(DebugPhaseListener.java:286)
> 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
> This happens because the DebugPhaseListener starts visiting the tree and, in the process, needs to resolve a value expression, which points to an OWB session bean.
> It only happens when the DebugPhaseListener is installed. In production mode everything is fine.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira