[
https://issues.apache.org/jira/browse/TAP5-374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12667520#action_12667520
]
Howard M. Lewis Ship commented on TAP5-374:
-------------------------------------------
I believe what's happening is that when the pageAttached() lifecycle method is
invoked, the page is still in unattached state, i.e., so that it can ignore any
changes to persistent fields caused by rolling back of the externally pesistent
field values. Thus the change to myMap is ignored as if it was the result of
rolling back the value stored in the session.
So, probably, we need to split pageAttached() into two notifications: one for
Tapestry generated code (i.e., an internalPageAttached()) and one for use code
(pageAttached).
> Persistent (@Persist) fields not set correctly between requests if they are
> initialised from pageAttached() method
> ------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-374
> URL: https://issues.apache.org/jira/browse/TAP5-374
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.0.15, 5.0.16
> Reporter: Joel Halbert
> Assignee: Howard M. Lewis Ship
>
> I am seeing unexpected behaviour when using persistent fields and the
> page lifecycle method, pageAttached(), (T 5.0.15).
> I have a persistent field,
> @Persist
> private Map myMap;
> I also have a page lifecycle method,
> void pageAttached() {
> if (myMap == null){
> myMap = new HashMap();
> }
> }
> I expect that when the page first loads and myMap is null then myMap
> will be initialised to an empty map, thereafter I expect anything I put
> into the map to persist across requests.
> What I actually see is that, if the above pageAttached method is present
> then any data that I put into myMap does not persist across requests
> (the map is always empty). I was not expecting this.
> If I do not initialise myMap in pageAttached then data does persist.
> By design or bug?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.