[
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