Cannot forward a response that is already committed

java.lang.IllegalStateException: Cannot forward a response that is already committed

at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:110)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:439)
at org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:170)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:93)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:452)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:530)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:459)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:159)
at weblogic.servlet.jsp.PageContextImpl.handlePageException(PageContextImpl.java:401)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>
####<Oct 20, 2009 2:18:04 AM EDT> <Critical> <Health> <weblogic.GCMonitor> <<anonymous>> <> <> <1287555484427> <BEA-310003> <Free memory in the server is 9,979,338 bytes. There is danger of OutOfMemoryError>

 

The java.lang.IllegalStateException: Cannot forward a response that is already committed is referenced as follows:

When a servlet is first called, the response object is fresh and new: its headers have not been set, its buffers are empty, and no data has been written to the client.
However, as soon as either the status code or any of the headers have been written — or potentially written — to the client, or when data has been — or may have been — written to the body stream, then you may be susceptible to the IllegalStateException error.
The problem that this exception is signalling is the new data writing is inconsistent with the data that is already been set and then irretrievably sent (“committed”) to the client.

Therefore, the application code has to be reviewed in order to avoid those exceptions and check that those could be the cause of the warning’s about “Out of Memory“.

It is recommended to follow the coding practices suggested in the following documents to avoid memory leaks in your application.

JDBC - http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs100/jdbc/troubleshooting.html

JNDI - http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs100/jndi/jndi.html#wp472853

JMS - http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs100/jms/implement.html#wp1194127

In case of any ┬ęCopyright or missing credits issue please check CopyRights page for faster resolutions.

Leave a Reply