[ 
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.

Reply via email to