Closed brivalin closed 1 year ago
For Mojarra 2.3 and earlier please contact your vendor for support (RedHat, IBM, Oracle, Omnifish, Payara, etceteras)
@brivalin if we can verify it is still an issue on 4.0.3 lets open a new ticket.
@brivalin if we can verify it is still an issue on 4.0.3 lets open a new ticket.
I'm currently in holiday but I will check it as son as possible when I get back to work.
Describe the bug
After generating a Tree component server side, with its UITreeNode childrens. The tree is well-generated. But when I update the Tree bound in @RequestScoped bean, it loses UITreeNode childrens previously created for Tree.
Original Report : https://github.com/primefaces/primefaces/issues/8916
To Reproduce
Reproducer: pf-8916.zip
Steps to reproduce the behavior:
mvn clean jetty:run -Pmojarra23
GRAVE: Error Rendering View[/test.xhtml] javax.faces.FacesException: Unsupported tree node type:type1 at org.primefaces.component.tree.Tree.getUITreeNodeByType(Tree.java:123) at org.primefaces.component.tree.TreeRenderer.encodeTreeNode(TreeRenderer.java:672) at org.primefaces.component.tree.TreeRenderer.encodeTreeNodeChildren(TreeRenderer.java:817) at org.primefaces.component.tree.TreeRenderer.encodeVerticalTree(TreeRenderer.java:412) at org.primefaces.component.tree.TreeRenderer.encodeMarkup(TreeRenderer.java:353) at org.primefaces.component.tree.TreeRenderer.encodeEnd(TreeRenderer.java:264) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:600) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655) at javax.faces.render.Renderer.encodeChildren(Renderer.java:152) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:571) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1648) at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:628) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:159) at javax.faces.component.UIForm.visitTree(UIForm.java:366) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1469) at javax.faces.component.UIComponent.visitTree(UIComponent.java:1469) at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:413) at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:321) at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:65) at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1102) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1648) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:442) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:170) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:102) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:199) at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:708) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451) at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:292) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:516) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) at java.base/java.lang.Thread.run(Thread.java:834)
Expected behavior
Mojarra doesn't loose UITreeNode childrens when updating Tree. (Like MyFaces)
Desktop
Additional context
It fails with Mojarra 2.2.20 and 2.3.18 but works with MyFaces 2.2.15 and 2.3.10.
mvn clean jetty:run -Pmojarra22
(fails)mvn clean jetty:run -Pmojarra23
(fails)mvn clean jetty:run -Pmyfaces22
(passes)mvn clean jetty:run -Pmyfaces23
(passes)