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.