In IE7, I don't have the use of a tool like firebug, but here is the console output and phaseListener data:
1 - collapse ace:panel
UNEXPECTED EXECUTION OF THE JSF LIFECYCLE - PHASELISTENER EXECUTED "ice.dispose.window".equals(fc.getExternalContext() .getRequestParameterMap().get("ice.submit.type") RESOLVES TO TRUE WHICH NEVER HAPPENS IN FIREFOX
2 - Press Print Preview
POST TO SERVER RESULTS IN @PreDestroy METHOD CALLED ON WINDOW SCOPE BEAN WHICH RESULTS IN THE APPLICATION INVALIDATING THE SESSION
The print preview window has the following:
An Error Occurred - Session has expired
org.icefaces.application.SessionExpiredException: Session has expired
at org.icefaces.impl.application.SessionExpiredListener.sessionDestroyed(SessionExpiredListener.java:62)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:805)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:740)
at org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:1253)
at org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSessionFacade.java:186)
at com.wgp.servdev.login.service.impl.LoginServiceImpl.logoff(LoginServiceImpl.java:484)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.wgp.servdev.common.service.util.WgpManagedBeanProxy.invoke(WgpManagedBeanProxy.java:119)
at $Proxy24.logoff(Unknown Source)
at com.wgp.servdev.common.backing.WindowCloseMonitorBean.preDestroy(WindowCloseMonitorBean.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:117)
at com.sun.faces.vendor.WebContainerInjectionProvider.invokePreDestroy(WebContainerInjectionProvider.java:87)
at com.sun.faces.mgbean.BeanBuilder.destroy(BeanBuilder.java:116)
at com.sun.faces.mgbean.BeanManager.processEvent(BeanManager.java:125)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2139)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2115)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:293)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:244)
at org.icefaces.impl.application.WindowScopeManager$ScopeMap.discardIfExpired(WindowScopeManager.java:310)
at org.icefaces.impl.application.WindowScopeManager$ScopeMap.access$500(WindowScopeManager.java:275)
at org.icefaces.impl.application.WindowScopeManager.determineWindowID(WindowScopeManager.java:109)
at org.icefaces.impl.application.WindowScopeManager$DetermineOrDisposeScope.beforePhase(WindowScopeManager.java:510)
at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.wgp.servdev.common.servlet.filter.JSFResourceCacheSettingFilter.doFilter(JSFResourceCacheSettingFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:306)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:323)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1719)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Actions to reproduce this issue:
IE7 only:
1 - go to page with ace:panel
2 - toggle panel
3 - open print preview window
4 - print preview window displays error message, session expired (session expired is a result of the current Window scope bean being destroyed)
If you leave out step #2 (do not toggle the ace:panel), the print preview process works normally.