Some of our applications end up with error 500 after upgrading to 8.5.2.After examining log files I’ve found this exception:
java.lang.ClassCastException: com.sun.faces.context.FacesContextImpl incompatible with com.ibm.xsp.context.FacesContextEx
at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:136)
at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)
at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:86)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:538)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1140)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:803)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:758)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:527)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1124)
at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:513)
at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:342)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:304)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:261)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:291)
After bit more digging I found this exception. It seems to be a root cause.
com.ibm.domino.xsp.bridge.http.exception.XspCmdException: HTTP: Error Reading Post Data:
at com.ibm.domino.xsp.bridge.http.engine.XspCmdNativeBridge.native_read(Native Method)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdNativeBridge.read(XspCmdNativeBridge.java:428)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdNativeContext.read(XspCmdNativeContext.java:75)
at com.ibm.domino.xsp.bridge.http.servlet.XspCmdServletInputStream.fillBuffer(XspCmdServletInputStream.java:118)
at com.ibm.domino.xsp.bridge.http.servlet.XspCmdServletInputStream.<init>(XspCmdServletInputStream.java:77)
at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.getInputStream(XspCmdHttpServletRequest.java:1296)
at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.loadParameters(XspCmdHttpServletRequest.java:841)
at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.getParameter(XspCmdHttpServletRequest.java:1035)
at com.ibm.designer.runtime.domino.adapter.servlet.LCDAdapterHttpServletRequest.getParameter(LCDAdapterHttpServletRequest.java:268)
at com.ibm.xsp.http.FileUploadRequestWrapper.getParameter(FileUploadRequestWrapper.java:604)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:161)
at com.sun.faces.context.RequestParameterMap.get(ExternalContextImpl.java:629)
at com.ibm.xsp.context.FacesContextExImpl.<init>(FacesContextExImpl.java:171)
at com.ibm.xsp.domino.context.DominoFacesContext.<init>(DominoFacesContext.java:32)
at com.ibm.xsp.domino.context.DominoFacesContextFactoryImpl.getFacesContext(DominoFacesContextFactoryImpl.java:67)
at com.ibm.xsp.controller.FacesControllerImpl.getFacesContext(FacesControllerImpl.java:175)
at com.ibm.xsp.webapp.FacesServlet.getFacesContext(FacesServlet.java:251)
at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:136)
at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)
at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:86)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:538)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1140)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:803)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:758)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:527)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1124)
at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:513)
at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:342)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:304)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:261)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:291)
Currently in one of our applications we are receiving the same issue. If we create a new application after the first time this error occured that application also is causing errors ( so it seems that the xsp render engine is somehow bugged when it occures an error ).
After some research I found that one of the custom controls we build was using the simple action Execute script in the beforepageload event. As soon as I remove these calls from the custom controls the error is gone as well.
On top of that: When I open the specific control with the execute script calls still inside my designer also throws a class cast exception :
An error has occurred. See error log for more details.
com.ibm.designer.domino.xsp.internal.events.simpleactions.uimodel.SimpleActionElement incompatible with com.ibm.designer.domino.xsp.internal.events.simpleactions.uimodel.SimpleActionElementRoot
App worked in 8.5.1 for 9+ months but since the update getting these 500 errors about once a week. Seems to break other xpages apps as well when it happens. Restarted/refeshing http seems to fix for a while.
I’ve got the same error. I’m using an afterPageLoad simple action with an execute client script.
java.lang.ClassCastException
An error has occurred. See error log for more details.
com.ibm.designer.domino.xsp.internal.events.simpleactions.uimodel.SimpleActionElement incompatible with com.ibm.designer.domino.xsp.internal.events.simpleactions.uimodel.SimpleActionElementRoot