[ 
https://issues.apache.org/jira/browse/WW-4134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14971617#comment-14971617
 ] 

Raymond Holguin commented on WW-4134:
-------------------------------------

I am still experiencing this issue.  I am currently running version 2.3.24.1, 
perhaps this was reintroduced after 2.3.16?  I was using an older version bit I 
upgraded specifically to handle this issue, but it appears its still here.

I reproduce this issue with the same scenario.  Init server startup, no 
sessions currently open.  I am using the pre-built defaultStack except I am 
adding the store interceptor at the top.

Please let me know what additional information you need.

{code:xml}
<action name="instructions" class="controller.student.Instructions">
                        <interceptor-ref name="defaultStack" />
                        
                        <result type="redirectAction">editAppContact</result>
                </action>
{code}

{code:xml}
<interceptor-stack name="defaultStack">
                <interceptor-ref name="store">
                                <param name="operationMode">AUTOMATIC</param>
                        </interceptor-ref>
                        
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="datetime"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params"/>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param 
name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param 
name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="deprecation"/>
            </interceptor-stack>
{code}

{code}
java.lang.IllegalStateException: Cannot create a session after the response has 
been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2377)
        at org.apache.catalina.connector.Request.getSession(Request.java:2097)
        at 
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
        at 
javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
        at org.apache.struts2.dispatcher.SessionMap.put(SessionMap.java:182)
        at 
org.apache.struts2.interceptor.MessageStoreInterceptor.after(MessageStoreInterceptor.java:297)
        at 
org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:198)
        at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)
        at 
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
        at 
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564)
        at 
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)
        at 
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
        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 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
        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:857)
        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:662)

{code}

> MessageStoreInterceptor java.lang.IllegalStateException if there is no session
> ------------------------------------------------------------------------------
>
>                 Key: WW-4134
>                 URL: https://issues.apache.org/jira/browse/WW-4134
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.3.14.3
>            Reporter: Jan Čustović
>             Fix For: 2.3.16
>
>
> When there is no session the following error happens on {code:xml}<result 
> type="redirect">{code}.
> {code}
> [org.apache.struts2.dispatcher.Dispatcher.error:38] []  - Exception occurred 
> during processing request: Cannot create a session after the response has 
> been committed
> java.lang.IllegalStateException: Cannot create a session after the response 
> has been committed
>         at 
> org.apache.catalina.connector.Request.doGetSession(Request.java:2880) 
> ~[catalina.jar:7.0.37]
>         at 
> org.apache.catalina.connector.Request.getSession(Request.java:2315) 
> ~[catalina.jar:7.0.37]
>         at 
> org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:898)
>  ~[catalina.jar:7.0.37]
>         at 
> javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:229)
>  ~[servlet-api.jar:na]
>         at 
> javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:229)
>  ~[servlet-api.jar:na]
>         at 
> javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:229)
>  ~[servlet-api.jar:na]
>         at org.apache.struts2.dispatcher.SessionMap.put(SessionMap.java:177) 
> ~[struts2-core-2.3.14.3.jar:2.3.14.3]
>         at 
> org.apache.struts2.interceptor.MessageStoreInterceptor.after(MessageStoreInterceptor.java:279)
>  ~[struts2-core-2.3.14.3.jar:2.3.14.3]
>         at 
> org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:195)
>  ~[struts2-core-2.3.14.3.jar:2.3.14.3]
>         at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
>  ~[xwork-core-2.3.14.3.jar:2.3.14.3]
> {code}
> This always happens if you wget your resource that has redirect.
> The interceptor should check if the session is available and only then 
> perform message storing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to