Missing no-args constructor in EventHandler.Listener causes Exception during postback -------------------------------------------------------------------------------------
Key: MYFACES-2490 URL: https://issues.apache.org/jira/browse/MYFACES-2490 Project: MyFaces Core Issue Type: Bug Components: JSR-314 Affects Versions: 2.0.0-alpha Reporter: Jan-Kees van Andel Assignee: Jan-Kees van Andel This is a snippet of the erroneous Facelet: <h:form> <dl> ... <dd><h:outputText id="challenge" value="#{component.attributes.challenge}"> <f:event type="javax.faces.event.PreRenderComponentEvent" listener="#{loginBean.generateChallenge}" /> </h:outputText></dd> ... </dl> </h:form> The problem occurs during postback, when the following Exception is thrown: javax.servlet.ServletException: Could not restore StateHolder of type org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener (missing no-args constructor?) at javax.faces.webapp.FacesServlet._handleStandardRequest(FacesServlet.java:483) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:209) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 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.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.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.RuntimeException: Could not restore StateHolder of type org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener (missing no-args constructor?) at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1479) at javax.faces.component.UIComponent$EventListenerWrapper.restoreState(UIComponent.java:1120) at javax.faces.component._DeltaList.restoreState(_DeltaList.java:300) at javax.faces.component.UIComponentBase.restoreDeltaSystemEventListenerClassMap(UIComponentBase.java:1770) at javax.faces.component.UIComponentBase.restoreState(UIComponentBase.java:1611) at javax.faces.component.UIOutput.restoreState(UIOutput.java:213) at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:379) at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:393) at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:393) at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreView(DefaultFaceletsStateManagementStrategy.java:181) at org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:388) at org.apache.myfaces.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:927) at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:231) at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:80) at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:106) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:129) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:85) at javax.faces.webapp.FacesServlet._handleStandardRequest(FacesServlet.java:448) ... 13 more Caused by: java.lang.InstantiationException: org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener at java.lang.Class.newInstance0(Class.java:340) at java.lang.Class.newInstance(Class.java:308) at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1475) ... 31 more According to the FacesListener spec, every implementation must provide a no-args constructor: https://javaserverfaces.dev.java.net/nonav/docs/2.0/javadocs/javax/faces/event/FacesListener.html -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.