Please review the change (revision 19118) and close or modify. Race condition is reproducible under load.
The load test may issue a send-receive-updates which is context-switched out when a dispose-views is received and processed. When the send-receive-updates wakes up again, the viewRoot is null.
Under real-world conditions, a more likely case is a dispose-views coinciding with a push update.
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)
}