jsf - java.lang.IllegalArgumentException: null source -
we have application uses jsf2 , spring. application works fine when deployed. happens if went through following steps:
- open login page of application.
- redeployed application on server.
tried login using opened login page, , shows following exception:
javax.servlet.servletexception: null source @ javax.faces.webapp.facesservlet.service(facesservlet.java:321) @ org.springframework.web.filter.delegatingfilterproxy.invokedelegate(delegatingfilterproxy.java:237) @ org.springframework.web.filter.delegatingfilterproxy.dofilter(delegatingfilterproxy.java:167) root cause java.lang.illegalargumentexception: null source @ java.util.eventobject.<init>(eventobject.java:38) @ javax.faces.event.systemevent.<init>(systemevent.java:67) @ javax.faces.event.componentsystemevent.<init>(componentsystemevent.java:69) @ javax.faces.event.postrestorestateevent.<init>(postrestorestateevent.java:69) @ com.sun.faces.lifecycle.restoreviewphase.deliverpostrestorestateevent(restoreviewphase.java:256) @ com.sun.faces.lifecycle.restoreviewphase.execute(restoreviewphase.java:245) @ com.sun.faces.lifecycle.phase.dophase(phase.java:97) @ com.sun.faces.lifecycle.restoreviewphase.dophase(restoreviewphase.java:107) @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:114) @ javax.faces.webapp.facesservlet.service(facesservlet.java:308)
if click on first login page , enter login details application not break. occurs if try use loaded login page newly deployed application.
anyone knows answer?
this 1 should have been thrown viewexpiredexception
. it's bug started manifest in mojarra 2.0.3 , been fixed in mojarra 2.1.0. see issue 1762 (note mojarra 2.1.0 doesn't work on tomcat/jetty, use @ least mojarra 2.1.1 then).
basically, when mojarra fails build or restore view, throws specific enough exception, due bug, valid view incorrectly been expected later in code in turn results in illegalargumentexception: null source
. possible real cause have been view contains simple xml syntax error, such missing tag or broken attribute value, mojarra have thrown faceletexception
detailed message line number , position , such.
to prevent viewexpiredexception
, have refresh page request before doing actions on it. if you're using mojarra version bug not manifest (e.g. 2.0.2 or older, or 2.1.0 or newer), gracefully handle <error-page>
in web.xml
on particular exception , provide custom error page wherein enduser informed session has been expired, along link initial request uri.
Comments
Post a Comment