Details
Description
A dispose-views request can occur at nearly the same time as a push request or a user event. This can lead to a race condition where the view is disposed while being rendered.
Activity
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #19118 | Fri Jul 24 16:33:13 MDT 2009 | ted.goddard | acquire lock for view disposal ( |
| Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/DisposeViews.java
|
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Mircea Toma [ mircea.toma ] |
| Salesforce Case | [] | |
| Fix Version/s | 1.8.2 [ 10190 ] |
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #19127 | Tue Jul 28 17:17:04 MDT 2009 | mircea.toma | |
| Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/DisposeViews.java
|
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
| Repository | Revision | Date | User | Message |
| ICEsoft Public SVN Repository | #19133 | Thu Jul 30 15:59:32 MDT 2009 | mircea.toma | |
| Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/DisposeViews.java
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/View.java
|
| Link | This issue blocks ICE-4756 [ ICE-4756 ] |
| Fix Version/s | 1.8.2-RC1 [ 10210 ] |
| Status | Resolved [ 5 ] | Closed [ 6 ] |

Tested fix was to add synchronization to view disposal.
+++ src/com/icesoft/faces/webapp/http/core/DisposeViews.java (working copy)
{ + view.acquireLifecycleLock(); view.dispose(); + view.releaseLifecycleLock(); }@@ -26,7 +26,9 @@
View view = (View) views.remove(viewIdentifiers[i]);
// Jira 1616 Logout throws NPE.
if (view != null)
}