Okay, there are two issues here.
The first issue is still triggered by JSF/Mojarra, when a ViewExpiredException is thrown (for a request that targets a discarded view). Mojarra is rendering a debug page to show what when wrong but doing so it will evaluate the EL expressions found in the page which in turn will trigger the creation of the beans referenced by the EL expressions.
The debug page is not used when the application runs in Production mode so the beans are not instantiated anymore on ViewExpiredException.
The second issue is in ICEfaces code. In EnvUtils.isICEfacesView method the view map is accessed with ViewRoot.getViewMap() which will create a new view map if one is missing for the current request. This behavior together with our dispose-window request issued on page close would generate a view that was never used.
The applied fix was to modify EnvUtils.isICEfacesView method to avoid creating a new view (and an associated view map) during a post-back.
Okay, there are two issues here.
The first issue is still triggered by JSF/Mojarra, when a ViewExpiredException is thrown (for a request that targets a discarded view). Mojarra is rendering a debug page to show what when wrong but doing so it will evaluate the EL expressions found in the page which in turn will trigger the creation of the beans referenced by the EL expressions.
The debug page is not used when the application runs in Production mode so the beans are not instantiated anymore on ViewExpiredException.
The second issue is in ICEfaces code. In EnvUtils.isICEfacesView method the view map is accessed with ViewRoot.getViewMap() which will create a new view map if one is missing for the current request. This behavior together with our dispose-window request issued on page close would generate a view that was never used.
The applied fix was to modify EnvUtils.isICEfacesView method to avoid creating a new view (and an associated view map) during a post-back.