You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Yoseph Stephen (JIRA)" <ji...@apache.org> on 2009/04/29 09:06:31 UTC

[jira] Created: (WW-3106) SEVERE: Servlet.service() for servlet default threw exception java.lang.IllegalStateException (Shows a BLANK PAGE to user)

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/struts/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.RequestFacade@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.


[jira] Commented: (WW-3106) SEVERE: Servlet.service() for servlet default threw exception java.lang.IllegalStateException (Shows a BLANK PAGE to user)

Posted by "Wes Wannemacher (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/struts/browse/WW-3106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46259#action_46259 ] 

Wes Wannemacher commented on WW-3106:
-------------------------------------

It is possible that you are looking down the wrong path... What is in error.jsp? It seems like there might be a problem in there causing your ISE. I would remove the Exception result configuration and see if you can find out what exception is being thrown in LoginAction, that might help you to track down the issue. I am only going to leave this open a little longer while you test, if we don't hear back soon, this issue will be closed. 

> 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/struts/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.RequestFacade@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.