[ 
https://issues.apache.org/jira/browse/WW-3106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart closed WW-3106.
-----------------------------

    Resolution: Not A Problem

> SEVERE: Servlet.service() for servlet default threw exception 
> java.lang.IllegalStateException (Shows a BLANK PAGE to user)
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-3106
>                 URL: https://issues.apache.org/jira/browse/WW-3106
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - SiteMesh
>    Affects Versions: 2.1.6
>         Environment: Windows XP Professional / Linux Ubuntu 32bit, Java 
> 1.6.0_13, Apache Tomcat/6.0.18, Apache Tomcat Native library 1.1.16
> Struts2 Core 2.1.6, Struts2 Sitemesh Plugin 2.1.6, Velocity 1.6.2, Velocity 
> Dep 1.6.2, Velocity Tools View 1.4, Hibernate 3.3.1, Spring 2.5.6.
>            Reporter: Yoseph Stephen
>            Priority: Blocker
>
> I have a big problem after upgrading to Struts 2.1.6. My application works 
> fine when using Struts 2.0.11. After upgrading to Struts 2.1.6, the 
> application keep showing a "Blank Page" randomly (sometimes it happen, and 
> quite often, but no pattern at all) when struts try to redirect to other 
> action. I'm in devMode = false, and the log shows an exception like this:
> [2009-04-28 16:49:16,374]DEBUG ServletRedirectResult:57 - Redirecting to 
> finalLocation /pages/home.action?
> Apr 28, 2009 4:49:16 PM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet default threw exception
> java.lang.IllegalStateException
>       at 
> org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
>       at 
> javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:108)
>       at 
> com.opensymphony.module.sitemesh.filter.PageResponseWrapper.sendError(PageResponseWrapper.java:176)
>       at 
> org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
>       at 
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
>       at 
> org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>       at 
> org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:76)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:127)
>       at 
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:63)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:65)
>       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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       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:286)
>       at 
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
>       at 
> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
>       at 
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
>       at java.lang.Thread.run(Unknown Source)
> [2009-04-28 16:49:16,376]DEBUG DisposableBeanAdapter:203 - Invoking destroy 
> method 'close' on bean with name 'hibernateSession'
> [2009-04-28 16:49:16,376]DEBUG HibernateSession:60 - closing hibernateSession
> [2009-04-28 16:49:16,376]DEBUG RequestContextListener:89 - Cleared 
> thread-bound request context: 
> org.apache.catalina.connector.requestfac...@1eb2473
> Apr 28, 2009 4:49:16 PM org.apache.catalina.core.StandardHostValve custom
> SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Exception, 
> location=/error.jsp]
> java.lang.IllegalStateException
>       at org.apache.coyote.Response.reset(Response.java:297)
>       at org.apache.catalina.connector.Response.reset(Response.java:658)
>       at org.apache.catalina.connector.Response.reset(Response.java:925)
>       at 
> org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:417)
>       at 
> org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:271)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
>       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:286)
>       at 
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
>       at 
> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
>       at 
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
>       at java.lang.Thread.run(Unknown Source)
> I have made a little adjustment due to an issue in Sitemesh 2.3 PageFilter, 
> you can see the issue here:
> http://jira.opensymphony.com/browse/SIM-151
> To fix the sitemesh issue, I have to make a replacement class for default 
> PageFilter (because struts 2 doesn't support latest Sitemesh 2.4.1), and 
> remove the code "request.getSession(true);".
> The "blank page" I said previously is happening before and after I have 
> created a new PageFilter, so the changes I've made wont be a matter.
> In the test case, I try to login and log out repeatedly, and a blank page 
> keep shows up (randomly) when try to redirect form login.action to 
> home.action. the web.xml settings:
> <filter>
>               <filter-name>struts2-prepare</filter-name>
>               
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
>       </filter>
>       <filter>
>           <filter-name>velocity</filter-name>
>           
> <filter-class>org.apache.struts2.sitemesh.VelocityPageFilter</filter-class>
>       </filter>
>       <filter>
>               <filter-name>struts2-execute</filter-name>
>               
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
>       </filter>
>       
>       <filter-mapping>
>           <filter-name>struts2-prepare</filter-name>
>           <url-pattern>*.action</url-pattern>
>       </filter-mapping>
>       <filter-mapping>
>           <filter-name>velocity</filter-name>
>           <url-pattern>*.action</url-pattern>
>       </filter-mapping>
>       <filter-mapping>
>           <filter-name>struts2-execute</filter-name>
>           <url-pattern>*.action</url-pattern>
>       </filter-mapping>
> The login and logout action XML:
> <action name="login" class="com.cpssoft.action.menus.general.LoginAction">
>                       <interceptor-ref name="defaultStack" />
>                       <interceptor-ref name="language" />
>                       <result name="input" 
> type="velocity">/pages/general/login.vm</result>
>                       <result name="success" type="redirect"> 
> ${originalUrl}</result>
>               </action>
> <action name="logout" class="com.cpssoft.action.menus.general.LoginAction"
>                       method="logout">
>                       <interceptor-ref name="defaultStack" />
>                       <interceptor-ref name="language" />
>                       <result name="input" 
> type="velocity">/pages/general/login.vm</result>
>               </action>
> ${originalUrl} will be filled with: "/pages/home.action" (See the exception 
> above).
> Any Idea how to fix this issue?
> Thx a lot

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