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

[email protected] commented on WW-4134:
----------------------------------------------------

I will be out of the office until July 5th

On Jul 5, 2013, at 7:17 AM, "[email protected] (JIRA)" 
<[email protected]>
 wrote:

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

[email protected] commented on WW-4134:
----------------------------------------------------

I will be out of the office until July 5th

On Jun 30, 2013, at 4:45 AM, Jan Čustović (JIRA) <[email protected]>
wrote:

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

Jan Čustović commented on WW-4134:
----------------------------------

The configuration is not important in this case but "store" interceptor with 
operationMode AUTOMATIC is on top of the chain.

It is very simple to reproduce the problem. In my case there is a link mapped 
to /instructions which is configured like this
{code}
<action name="instructions">
       <result type="redirect">/sw/static/instructions.pdf</result>
</action>
{code}

which forwards to another url.

Now if I open my browser and clear all sessions (or open chrome in incognito 
window or do a wget) and try to open /my-app/instructions I get the above error 
because session is not created yet because store interceptor is putting info in 
session that does not exist yet.

The workaround is to force session creation in filters before struts2 filter.

The store interceptor should check to see if session exists before trying to 
put/get from it.

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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

                
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to