ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-361

AsyncProgress Composite Component not working with MyFaces

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.0.0.BETA
    • Fix Version/s: EE-3.0.0.GA
    • Component/s: Facelet Components
    • Labels:
      None
    • Environment:
      n/a

      Description

      The Async Composite Component does not render when used with MyFaces 2.1.6 and the following error is reported server side:


      java.lang.IllegalArgumentException: Invalid PreDestroy annotation for bean 'progressAsyncExampleBean' check the configuration to make sure all properties correspond with get/set methods
      at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:167)
      at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:333)
      at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:296)
      at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
      at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
      at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
      at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
      at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
      at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:67)
      at org.apache.el.parser.AstValue.getValue(AstValue.java:147)
      at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
      at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
      at javax.faces.component._ValueExpressionToValueBinding.getValue(_ValueExpressionToValueBinding.java:171)
      at com.icesoft.faces.component.outputprogress.OutputProgress.getValue(OutputProgress.java:128)
      at com.icesoft.faces.component.outputprogress.OutputProgressRenderer.setPercentage(OutputProgressRenderer.java:83)
      at com.icesoft.faces.component.outputprogress.OutputProgressRenderer.buildLayout(OutputProgressRenderer.java:281)
      at com.icesoft.faces.component.outputprogress.OutputProgressRenderer.encodeEnd(OutputProgressRenderer.java:68)
      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:580)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:353)
      at com.icesoft.faces.renderkit.dom_html_basic.GridRenderer.encodeChildren(GridRenderer.java:191)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:549)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341)
      at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:79)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:549)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341)
      at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:79)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:549)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:348)
      at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:79)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:549)
      at com.icesoft.faces.component.util.CustomComponentUtils.renderChild(CustomComponentUtils.java:308)
      at com.icesoft.faces.component.paneltabset.PanelTabSetRenderer.writeTabCell(PanelTabSetRenderer.java:988)
      at com.icesoft.faces.component.paneltabset.PanelTabSetRenderer.encodeEnd(PanelTabSetRenderer.java:399)
      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:580)
      at javax.faces.component.UIData.encodeEnd(UIData.java:1696)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:353)
      at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:348)
      at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:79)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:549)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:755)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:764)
      at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:153)
      at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:402)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:755)
      at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900)
      at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
      at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115)
      at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:680)
      Caused by: java.lang.IllegalArgumentException: Invalid PreDestroy annotation
      at org.apache.catalina.core.DefaultInstanceManager.populateAnnotationsCache(DefaultInstanceManager.java:401)
      at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:145)
      at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
      at org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider.postConstruct(Tomcat7AnnotationLifecycleProvider.java:94)
      at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:213)
      at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:333)
      at org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:296)
      at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
      at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169)
      at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
      at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
      at org.apache.myfaces.el.convert.ValueExpressionToValueBinding.getValue(ValueExpressionToValueBinding.java:173)
      at org.apache.myfaces.config.impl.digester.elements.ManagedProperty.getRuntimeValue(ManagedProperty.java:119)
      at org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:325)
      at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:163)
      ... 65 more

        Activity

        Hide
        Philip Breau added a comment -

        30608 2/27/12 9:55 PM 1 philip.breau IPCK-361 LongRunningProcess should be Serializable

        30609 2/27/12 9:56 PM 1 philip.breau IPCK-361 ProgressAsyncBean @PreDestroy method cannot throw checked exception

        Show
        Philip Breau added a comment - 30608 2/27/12 9:55 PM 1 philip.breau IPCK-361 LongRunningProcess should be Serializable 30609 2/27/12 9:56 PM 1 philip.breau IPCK-361 ProgressAsyncBean @PreDestroy method cannot throw checked exception
        Hide
        Philip Breau added a comment -

        SEVERE: Exiting deserializeView - Could not deserialize state: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor
        java.io.InvalidClassException: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor
        at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:713)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
        at java.util.HashMap.readObject(HashMap.java:1030)
        at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.deserializeView(ServerSideStateCacheImpl.java:498)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.getSerializedViewFromServletSession(ServerSideStateCacheImpl.java:289)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.restoreSerializedView(ServerSideStateCacheImpl.java:892)
        at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlResponseStateManager.java:203)
        at org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:137)
        at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106)
        at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2037)
        at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:300)
        at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127)
        at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
        at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:680)
        Caused by: java.io.InvalidClassException: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor
        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:471)
        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1114)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.serializeView(ServerSideStateCacheImpl.java:390)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedViewInServletSession(ServerSideStateCacheImpl.java:240)
        at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedView(ServerSideStateCacheImpl.java:872)
        at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.saveState(HtmlResponseStateManager.java:144)
        at org.apache.myfaces.application.StateManagerImpl.saveView(StateManagerImpl.java:253)
        at javax.faces.application.StateManager.getViewState(StateManager.java:253)
        at org.icefaces.impl.context.DOMPartialViewContext.renderState(DOMPartialViewContext.java:519)
        at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:222)
        at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:402)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:755)
        at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900)
        at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
        at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115)
        at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
        ... 16 more

        Show
        Philip Breau added a comment - SEVERE: Exiting deserializeView - Could not deserialize state: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor java.io.InvalidClassException: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:713) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) at java.util.HashMap.readObject(HashMap.java:1030) at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.deserializeView(ServerSideStateCacheImpl.java:498) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.getSerializedViewFromServletSession(ServerSideStateCacheImpl.java:289) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.restoreSerializedView(ServerSideStateCacheImpl.java:892) at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlResponseStateManager.java:203) at org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:137) at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2037) at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:300) at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: java.io.InvalidClassException: com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor; no valid constructor at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:471) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1114) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) at java.util.HashMap.writeObject(HashMap.java:1001) at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.serializeView(ServerSideStateCacheImpl.java:390) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedViewInServletSession(ServerSideStateCacheImpl.java:240) at org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedView(ServerSideStateCacheImpl.java:872) at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.saveState(HtmlResponseStateManager.java:144) at org.apache.myfaces.application.StateManagerImpl.saveView(StateManagerImpl.java:253) at javax.faces.application.StateManager.getViewState(StateManager.java:253) at org.icefaces.impl.context.DOMPartialViewContext.renderState(DOMPartialViewContext.java:519) at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:222) at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:402) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:755) at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900) at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) ... 16 more
        Hide
        Philip Breau added a comment -

        After making the AfterExecuteThreadPoolExecutor transient in the ProgressAsyncBean, the following client-side error in being returned after clicking the button:

        <partial-response>
        <error>
        <error-name>org.apache.myfaces.view.facelets.el.ContextAwareELException</error-name>
        <error-message><![CDATA[javax.el.ELException: java.lang.NullPointerException]]></error-message>
        </error>..

        Show
        Philip Breau added a comment - After making the AfterExecuteThreadPoolExecutor transient in the ProgressAsyncBean, the following client-side error in being returned after clicking the button: <partial-response> <error> <error-name>org.apache.myfaces.view.facelets.el.ContextAwareELException</error-name> <error-message><![CDATA [javax.el.ELException: java.lang.NullPointerException] ]></error-message> </error>..
        Hide
        Philip Breau added a comment -

        After making the executor transient and reinitializing it when necessary, the executor is being called properly, including the ProgressAsyncBean.afterExecute() method, but now Push is not working:

        Exception in thread "pool-6-thread-1" java.lang.RuntimeException: FacesContext is not present for thread Thread[pool-6-thread-1,5,main]
        at org.icefaces.application.PushRenderer.missingFacesContext(PushRenderer.java:226)
        at org.icefaces.application.PushRenderer.render(PushRenderer.java:138)
        at com.icesoft.faces.facelets.component.progress.ProgressAsyncBean.afterExecute(ProgressAsyncBean.java:85)
        at com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor.afterExecute(AfterExecuteThreadPoolExecutor.java:39)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:680)

        Show
        Philip Breau added a comment - After making the executor transient and reinitializing it when necessary, the executor is being called properly, including the ProgressAsyncBean.afterExecute() method, but now Push is not working: Exception in thread "pool-6-thread-1" java.lang.RuntimeException: FacesContext is not present for thread Thread [pool-6-thread-1,5,main] at org.icefaces.application.PushRenderer.missingFacesContext(PushRenderer.java:226) at org.icefaces.application.PushRenderer.render(PushRenderer.java:138) at com.icesoft.faces.facelets.component.progress.ProgressAsyncBean.afterExecute(ProgressAsyncBean.java:85) at com.icesoft.faces.facelets.component.progress.AfterExecuteThreadPoolExecutor.afterExecute(AfterExecuteThreadPoolExecutor.java:39) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680)
        Hide
        Philip Breau added a comment -

        Fixed serialization issues.

        With MyFaces default behavour of serializing beans between requests, a thread outside of a JSF request cannot modify bean state and have that state reflected in subsequent requests. Because of this I've provided a new interface ProgressState that users can provide an implementation of. Users need only be aware that ProgressState implementations will need to be accessed outside of a JSF context. In a MyFaces context using serialization, JSF beans will not work, so users should, in that case, provide another mechanism.

        30646 3/2/12 2:35 PM 2 philip.breau IPCK-361 fix ProgressAsync for MyFaces

        Show
        Philip Breau added a comment - Fixed serialization issues. With MyFaces default behavour of serializing beans between requests, a thread outside of a JSF request cannot modify bean state and have that state reflected in subsequent requests. Because of this I've provided a new interface ProgressState that users can provide an implementation of. Users need only be aware that ProgressState implementations will need to be accessed outside of a JSF context. In a MyFaces context using serialization, JSF beans will not work, so users should, in that case, provide another mechanism. 30646 3/2/12 2:35 PM 2 philip.breau IPCK-361 fix ProgressAsync for MyFaces
        Hide
        Philip Breau added a comment -

        Reimplemented workaround of MyFaces serialization issue with a default ProgressState implementation in an inner class that uses the SessionMap.

        Show
        Philip Breau added a comment - Reimplemented workaround of MyFaces serialization issue with a default ProgressState implementation in an inner class that uses the SessionMap.

          People

          • Assignee:
            Philip Breau
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: