Details
Description
Found this while testing autoBeansFacelets.
Right now, if you use an IntervalRenderer, and the session expires, then it will
throw however many TransientRenderingExceptions before failing, exactly the same
as if you closed the browser window. But, that's unnecessary, because the class
that calls render on the PersistentFacesState could just look into the
PersistentFacesState, and see if the session has expired, and immediately throw
a fatal rendering exception.
In a server with tight resources it would probably be preferable to use a
fail-fast strategy here, especially if the IntervalRenderer uses a large time
interval, which could unnecessarily hold resources for a very long time.
ERROR [D2DFaceletViewHandler] Problem in renderResponse: getAttribute: Session
already invalidated
java.lang.IllegalStateException: getAttribute: Session already invalidated
at
org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1011)
at
org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:109)
at
com.icesoft.faces.webapp.http.servlet.ServletSessionMap.getAttribute(ServletSessionMap.java:19)
at
com.icesoft.faces.context.AbstractAttributeMap.containsKey(AbstractAttributeMap.java:94)
at
com.icesoft.faces.application.D2DViewHandler.getContextServletTables(D2DViewHandler.java:314)
at
com.icesoft.faces.application.D2DViewHandler.getContextServletTable(D2DViewHandler.java:325)
at
com.icesoft.faces.application.D2DViewHandler.clearSession(D2DViewHandler.java:602)
at
com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:246)
at
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
at
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
at
com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:124)
at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668)
at java.lang.Thread.run(Thread.java:595)
Right now, if you use an IntervalRenderer, and the session expires, then it will
throw however many TransientRenderingExceptions before failing, exactly the same
as if you closed the browser window. But, that's unnecessary, because the class
that calls render on the PersistentFacesState could just look into the
PersistentFacesState, and see if the session has expired, and immediately throw
a fatal rendering exception.
In a server with tight resources it would probably be preferable to use a
fail-fast strategy here, especially if the IntervalRenderer uses a large time
interval, which could unnecessarily hold resources for a very long time.
ERROR [D2DFaceletViewHandler] Problem in renderResponse: getAttribute: Session
already invalidated
java.lang.IllegalStateException: getAttribute: Session already invalidated
at
org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1011)
at
org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:109)
at
com.icesoft.faces.webapp.http.servlet.ServletSessionMap.getAttribute(ServletSessionMap.java:19)
at
com.icesoft.faces.context.AbstractAttributeMap.containsKey(AbstractAttributeMap.java:94)
at
com.icesoft.faces.application.D2DViewHandler.getContextServletTables(D2DViewHandler.java:314)
at
com.icesoft.faces.application.D2DViewHandler.getContextServletTable(D2DViewHandler.java:325)
at
com.icesoft.faces.application.D2DViewHandler.clearSession(D2DViewHandler.java:602)
at
com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:246)
at
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
at
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
at
com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:124)
at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668)
at java.lang.Thread.run(Thread.java:595)
Activity
Mark Collette
created issue -
Icefaces Administrator
made changes -
Field | Original Value | New Value |
---|---|---|
issue.field.bugzillaimportkey | 1330 | 12526 |
Ken Fyten
made changes -
Priority | Major [ 3 ] | Minor [ 4 ] |
Ken Fyten
made changes -
Assignee | Ted Goddard [ ted.goddard ] |
Ken Fyten
made changes -
Fix Version/s | 1.7.1 [ 10122 ] |
Ken Fyten
made changes -
Assignee Priority | P3 | |
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Ken Fyten
made changes -
Fix Version/s | 1.7.2 [ 10130 ] | |
Fix Version/s | 1.7.1 [ 10122 ] |
Jack Van Ooststroom
made changes -
Assignee Priority | P3 | P2 |
Assignee | Deryk Sinotte [ deryk.sinotte ] | Jack Van Ooststroom [ jack.van.ooststroom ] |
Jack Van Ooststroom
made changes -
Assignee Priority | P2 | P1 |
Ken Fyten
made changes -
Assignee Priority | P1 | P3 |
Ken Fyten
made changes -
Fix Version/s | 1.8DR#2 [ 10142 ] | |
Fix Version/s | 1.7.2 [ 10130 ] |
Ken Fyten
made changes -
Assignee | Jack Van Ooststroom [ jack.van.ooststroom ] | Deryk Sinotte [ deryk.sinotte ] |
Ken Fyten
made changes -
Fix Version/s | 1.8DR#3 [ 10143 ] | |
Fix Version/s | 1.8DR#2 [ 10142 ] |
Ken Fyten
made changes -
Assignee Priority | P3 |
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] | Jack Van Ooststroom [ jack.van.ooststroom ] |
Deryk Sinotte
made changes -
Assignee Priority | P3 |
Deryk Sinotte
made changes -
Salesforce Case | [] | |
Assignee Priority | P3 | P1 |
Jack Van Ooststroom
made changes -
Status | Open [ 1 ] | In Progress [ 3 ] |
Jack Van Ooststroom
made changes -
Status | In Progress [ 3 ] | Resolved [ 5 ] |
Resolution | Cannot Reproduce [ 5 ] |
Ken Fyten
made changes -
Fix Version/s | 1.8 [ 10161 ] | |
Assignee Priority | P1 |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Jack van Ooststroom [ jack.van.ooststroom ] |
Changed Assignee Priority to P1 and assigned to me