[ 
https://issues.apache.org/jira/browse/TAP5-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645584#action_12645584
 ] 

Howard M. Lewis Ship commented on TAP5-320:
-------------------------------------------

The intent of flash is to store a value long enough for it to be rendered on 
the same page in the next (render) request.

So, I understand that it's not doing what you want, and there is some ambiguity 
in how it operates ... but it does correctly address the use case it was 
created for.

> 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