Sporadic duplicate Id exception on app log since Liberty migration,

Our application recently migrated from JBOSS 5.2 to Liberty 16.x. Since the migration we are noticing sporadic ‘duplicate id’ exceptions on application logs. The application uses JSF 1.2(Sun RI) and richfaces 3.x. I have shared part of the exception stack trace below.
What’s more surprising is that, system should not generate an id like that. Instead of “FRM:dppLst:avActionDPP”, it should actually be something like “FRM:dppLst**:1:**avActionDPP”. The index is missing in the id. The element avActionDPP exists inside an “a4j:repeat” tag. So, I would expect an index appearing in the final id.
I am quite sure that I am not the first one to notice this issue. It would be great to know how to resolve it.
The issue is very sporadic in nature but not rare. The same scenario with the same set of data is not guaranteed to reproduce it.
Also, this exception doesn’t pass to the client. It seems that the server consumes it and then the next phases of JSF doesn’t execute.

Exception stack trace:
Caused by: java.lang.IllegalStateException: duplicate Id for a component FRM:dppLst:avActionDPP
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:68)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:92)
at org.ajax4jsf.application.AjaxStateManager.getTreeStructureToSave(AjaxStateManager.java:189)
at org.ajax4jsf.application.AjaxStateManager.buildViewState(AjaxStateManager.java:514)
at org.ajax4jsf.application.AjaxStateManager.saveSerializedView(AjaxStateManager.java:467)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:615)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

,

Related:

Leave a Reply