[
https://issues.jboss.org/browse/RF-12295?page=com.atlassian.jira.plugin.s...
]
Brian Leathem updated RF-12295:
-------------------------------
Description:
Facelets exception occurs on postback phase if there's <a4j:outputPanel> on the
page. After this exception further work is not possible as it prevents all other actions.
On Richfaces 4.2.0 and older exception doesn't occur. Exception text:
{code}
javax.faces.FacesException: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:290)
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:315)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:192)
at
com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:119)
at
com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:444)
at
com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:144)
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:284)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:183)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.NoCacheFilter.doFilter(NoCacheFilter.java:33)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.EncodingFilter.doFilter(EncodingFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogicx.servlet.gzip.filter.GZIPFilter.doFilter(GZIPFilter.java:70)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.AuthFilter.doFilter(AuthFilter.java:79)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:285)
... 35 more
{code}
was:
Facelets exception occurs on postback phase if there's <a4j:outputPanel> on the
page. After this exception further work is not possible as it prevents all other actions.
On Richfaces 4.2.0 and older exception doesn't occur. Exception text:
javax.faces.FacesException: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:290)
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:315)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:192)
at
com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:119)
at
com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:444)
at
com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:144)
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:284)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:183)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.NoCacheFilter.doFilter(NoCacheFilter.java:33)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.EncodingFilter.doFilter(EncodingFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogicx.servlet.gzip.filter.GZIPFilter.doFilter(GZIPFilter.java:70)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.AuthFilter.doFilter(AuthFilter.java:79)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:285)
... 35 more
Steps to Reproduce:
create page with a4j:outputPanel and some button or another component that will trigger
some action:
{code}
<h:form>
<a4j:outputPanel>
<span></span>
</a4j:outputPanel>
<a4j:commandButton value="Click me"/>
</h:form>
{code}
was:
create page with a4j:outputPanel and some button or another component that will trigger
some action:
<h:form>
<a4j:outputPanel>
<span></span>
</a4j:outputPanel>
<a4j:commandButton value="Click me"/>
</h:form>
Workaround Description:
(By Andrey Zhemoytuk)
Create class that extends UIOutputPanel and override its isKeepTransient() method:
{code}
public class UIOutputPanelWorkaround extends UIOutputPanel
{
public boolean isKeepTransient() {
// or just return false;
Boolean value = (Boolean) getStateHelper().eval(Properties.keepTransient, false);
return value;
}
}
{code}
and in faces-config:
{code}
<component>
<component-type>org.richfaces.OutputPanel</component-type>
<component-class>com.example.UIOutputPanelWorkaround</component-class>
</component>
{code}
was:
(By Andrey Zhemoytuk)
Create class that extends UIOutputPanel and override its isKeepTransient() method:
public class UIOutputPanelWorkaround extends UIOutputPanel
{
public boolean isKeepTransient() {
// or just return false;
Boolean value = (Boolean) getStateHelper().eval(Properties.keepTransient, false);
return value;
}
}
and in faces-config:
<component>
<component-type>org.richfaces.OutputPanel</component-type>
<component-class>com.example.UIOutputPanelWorkaround</component-class>
</component>
Forum Reference:
https://community.jboss.org/message/738350,
https://community.jboss.org/message/731014#731014 (was:
https://community.jboss.org/message/738350,
https://community.jboss.org/message/731014#731014)
Facelets exception since 4.2.1
------------------------------
Key: RF-12295
URL:
https://issues.jboss.org/browse/RF-12295
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-a4j-core, component-output
Affects Versions: 4.2.1.CR1, 4.2.1.Final, 4.2.2.Final
Environment: Weblogic 10.3.5, Tomcat 7
Reporter: Nikolai Alexeev
Labels: facelets, outputPanel
Facelets exception occurs on postback phase if there's <a4j:outputPanel> on the
page. After this exception further work is not possible as it prevents all other actions.
On Richfaces 4.2.0 and older exception doesn't occur. Exception text:
{code}
javax.faces.FacesException: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:290)
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:315)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:192)
at
com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:119)
at
com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:444)
at
com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:144)
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:284)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:183)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.NoCacheFilter.doFilter(NoCacheFilter.java:33)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.EncodingFilter.doFilter(EncodingFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogicx.servlet.gzip.filter.GZIPFilter.doFilter(GZIPFilter.java:70)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at util.servlet.filter.AuthFilter.doFilter(AuthFilter.java:79)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.InstantiationException:
com.sun.faces.facelets.compiler.UIInstructions
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.faces.application.StateManagerImpl.newInstance(StateManagerImpl.java:285)
... 35 more
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira