Flash Persist Variables might be cleared too aggressively
---------------------------------------------------------

                 Key: TAP5-320
                 URL: https://issues.apache.org/jira/browse/TAP5-320
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.0.16
            Reporter: Fernando


So yes it looks like the Flash variables of a Page are scrubbed when the page 
is removed from the cache, no matter if it's rendered or not.  The stack trace 
is below.

I know that my example might be a bit extreme, but here are some other usecases 
that should be affected as well:

-- Page Rendering
1) render PageA (set flash variable).
2) render PageB
  a) while rendering, it loads PageA for some reason
     (RequestPageCache.get, PageLink, ActionLink, etc)
  b) while loading PageA, its flash variables are cleared
3) render PageA (flash variable is null)

-- Ajax
1) render PageA (set flash variable).
2) Ajax callback to app
  a) either hitting PageA directly, or hitting PageB that
     refers to PageA in some way
     ( PageLink, ActionLink, RequestPageCache.get )
  b) while loading PageA, its flash variables are cleared
3) render PageA (flash variable is null)






STACK TRACE:
showing that flash variables are cleared from pages once they are loaded, not 
once they are rendered, so it can be cleared way before we have a change to 
render it.

setAttribute( flash:core/Start:status.cheerform:defaultTracker, null )
    at 
org.apache.tapestry5.internal.services.SessionImpl.setAttribute(SessionImpl.java:50)
    at 
org.apache.tapestry5.internal.services.FlashPersistentFieldStrategy.didReadChange(FlashPersistentFieldStrategy.java:41)
    at 
org.apache.tapestry5.internal.services.AbstractSessionPersistentFieldStrategy.gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:65)
    at 
org.apache.tapestry5.internal.services.PersistentFieldManagerImpl.gatherChanges(PersistentFieldManagerImpl.java:65)
    at 
$PersistentFieldManager_11d5412d051.gatherChanges($PersistentFieldManager_11d5412d051.java)
    at 
org.apache.tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java:185)
    at 
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getFieldChange(InternalComponentResourcesImpl.java:111)
    at 
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.hasFieldChange(InternalComponentResourcesImpl.java:121)
    at com.protrade.fanwars.base.pages.Start.containingPageDidAttach(Start.java)
    at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$2.run(ComponentPageElementImpl.java:80)
    at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:912)
    at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.containingPageDidAttach(ComponentPageElementImpl.java:726)
    at 
org.apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java:151)
    at 
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:55)
    at $RequestPageCache_11d5412d04b.get($RequestPageCache_11d5412d04b.java)
    at $RequestPageCache_11d5412d046.get($RequestPageCache_11d5412d046.java)
    at 
com.protrade.facebook.base.services.FbForceModeFilter.handle(FbForceModeFilter.java:57)
  (this is my PageRenderRequestFilter which cuts off page rendering)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to