ACS AEM Commons Error Page Handler
- December 19, 2016
- 2 replies
- 4094 views
Hi All,
I have configured ACS error page handler with my 6.2 application. I have attached the config snapshot . The 404 behavior works fine but i am struggling to get the 500 error work.
After checking the error.log file I can see the following error. -- org.apache.sling.engine.impl.DefaultErrorHandler handleError: Response already committed; cannot send error 500java.lang.Error: Unresolved compilation problems:
The complete stack trace is below
Caused by: org.apache.sling.api.scripting.ScriptEvaluationException: An exception occurred processing JSP page /apps/acs-commons/components/utilities/errorpagehandler/default.jsp at line 47
at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:416)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:4 91)
at org.apache.sling.servlets.resolver.internal.SlingServletResolver.handleError(SlingServlet Resolver.java:765)
... 51 common frames omitted
Caused by: org.apache.sling.api.SlingException: An exception occurred processing JSP page /apps/acs-commons/components/utilities/errorpagehandler/default.jsp at line 47
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspExceptionInterna l(JspServletWrapper.java:683)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspException(JspSer vletWrapper.java:608)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:529)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:449)
at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java :284)
at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.j ava:102)
at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngin eFactory.java:536)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388)
... 54 common frames omitted
Caused by: java.lang.IllegalStateException: Committed
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1243)
at org.eclipse.jetty.server.Response.resetForForward(Response.java:1235)
at org.eclipse.jetty.server.Response.reset(Response.java:1181)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:186)
at com.adobe.acs.commons.errorpagehandler.impl.ErrorPageHandlerImpl.resetRequestAndResponse( ErrorPageHandlerImpl.java:764)
at org.apache.jsp.apps.sling.servlet.errorhandler.default_jsp._jspService(default_jsp.java:3 30)
at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:502)
... 59 common frames omitted
19.12.2016 20:47:47.352 *ERROR* [0:0:0:0:0:0:0:1 [1482160667209] GET /content/mecommerce/americas/US/en/signup/password.html HTTP/1.1] org.apache.sling.engine.impl.DefaultErrorHandler handleError: Response already committed; cannot send error 500java.lang.Error: Unresolved compilation problems:
At line 47 of default.jsp has the following code
errorPageHandlerService.resetRequestAndResponse(slingRequest, slingResponse, status);
Adding code for errorPageHandlerService.resetRequestAndResponse
/** * Reset response attributes to support printing out a new page (rather than one that potentially errored out). * This includes clearing clientlib inclusion state, and resetting the response. * <p> * If the response is committed, and it hasnt been closed by code, check the response AND jsp buffer sizes and * ensure they are large enough to NOT force a buffer flush. * * @param request * @param response * @param statusCode */ public void resetRequestAndResponse(SlingHttpServletRequest request, SlingHttpServletResponse response, int statusCode) { // Clear client libraries // Replace with proper API call is HtmlLibraryManager provides one in the future; // Currently this is our only option. request.setAttribute("com.day.cq.widget.HtmlLibraryManager.included", new HashSet<String>()); // Fixes AEM 6.2 issue (https://github.com/Adobe-Consulting-Services/acs-aem-commons/issues/790) request.setAttribute("com.adobe.granite.ui.clientlibs.HtmlLibraryManager.included", new HashSet<String>()); // Clear the response response.reset(); response.setContentType("text/html"); response.setStatus(statusCode); }Can you please help me if there is any configuration that needs to be done for AEM 6.2 ?