Details
-
Type: Task
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: EE-2.0.0.GA
-
Fix Version/s: None
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ICEfaces-EE
Description
Livelock is sometimes observed with the following stack trace common:
com.icesoft.faces.component.panelseries.UISeries.restoreChild(UISeries.java:535)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:473)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:476)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:476)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:476)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:476)
com.icesoft.faces.component.panelseries.UISeries.restoreChildState(UISeries.java:476)
com.icesoft.faces.component.panelseries.UISeries.restoreChildrenState(UISeries.java:461)
com.icesoft.faces.component.panelseries.UISeries.setRowIndex(UISeries.java:137)
com.icesoft.faces.component.panelseries.UISeries.visitTree(UISeries.java:803)
javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
javax.faces.component.UIForm.visitTree(UIForm.java:344)
javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:280)
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:257)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
Activity
Ted Goddard
created issue -
Ted Goddard
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Ted Goddard [ ted.goddard ] |
Arran Mccullough
made changes -
Salesforce Case | [5007000000LH2OY] |
Ken Fyten
made changes -
Assignee | Ted Goddard [ ted.goddard ] |
A patch will be created to make use of a ConcurrentHashMap. This is not to be regarded as a general solution since the root cause is concurrent access to the component tree which will likely cause other data corruption which may or may not be visible.
The patch will also log the state of the boolean sendDisposeWindow, since this is believed to be the only scenario for concurrent access (a window dispose sent at the same time as a user event being processed).