Stack excerpt from the forum post.
com.icesoft.faces.application.ViewRootStateManagerImpl.saveView(ViewRootStateManagerImpl.java:145)
com.sun.faces.extensions.avatar.application.DeferredStateManager.saveView(DeferredStateManager.java:69)
com.sun.faces.application.ViewHandlerImpl$WriteBehindStateWriter.flushToWriter(ViewHandlerImpl.java:930)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:205)
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:145)
org.icefaces.netbeans.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:296)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.render(PartialTraversalLifecycle.java:106)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
The original implementation didn't handle doing delegation. One problem encountered was that the default faces-config file included in ICEFaces contains an ICEFaces implementation definition. If the user defines a state saving implementation in the project specific faces-config.xml file the question is how to get it used, since the instance is always constructed with a delegate (our defined by default instance). The code now checks to see if the delegate is a non-icefaces implementation and only delegates if this is true.