Search code examples
javajspsessionservletsillegalstateexception

Response already commited - java.lang.IllegalStateException: UT010019


I am working on a web application with jsp and servlets.

My Servlet name is ServletBulkCrdProm and I redirect to jsp page in the method doBulkCrdSelect() which is called by Servlet's doPost() method.

In my servlet, I forward the request to a jsp page like this.

dispatcher = getServletContext().getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
dispatcher.forward(req, res);
return;

This works without any issue. I submit the jsp form like this.

 <form id="dataform" name="dataform"  method="<%=WebConstants.HTML_FORM_SUMIT_METHOD%>" action="<%=ServletMapConst.SERVLET_NAME%>">

Problem is when I submit the jsp page again ( which contains a form and handled by the same servlet but a different method named doBulkCrdUpload() which again called by doPost() method of servlet) I get this error.

java.lang.IllegalStateException: UT010019: Response already commited
at io.undertow.servlet.spec.ServletOutputStreamImpl.resetBuffer(ServletOutputStreamImpl.java:712)
at io.undertow.servlet.spec.HttpServletResponseImpl.resetBuffer(HttpServletResponseImpl.java:494)
at javax.servlet.ServletResponseWrapper.resetBuffer(ServletResponseWrapper.java:241)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:167)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
at bulkCrdProm.ServletBulkCrdProm.doBulkCrdSelect(ServletBulkCrdProm.java:401)
at bulkCrdProm.ServletBulkCrdProm.doPost(ServletBulkCrdProm.java:101)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:90)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at sessionhandler.SessionFilter.doFilter(SessionFilter.java:610)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

What I am doing wrong here? Can someone please help me to solve the issue.A help is much appreciated.


Solution

  • If do you have servlet request in your method, try to get dispatcher from it, instead of servletContext dispatcher = request.getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp"); Also there is could be issue at another part of your code, that isn`t shown in this question.

    Also pay attention at your forwards. should be only one by stack trace.