Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.3, 5.2
-
None
Description
Since Tapestry 5.2 and the end of page pooling, all mutable field state (unclaimed fields, parameter fields, persisted fields, etc.) have their values stored in an external, per-thread HashMap, which allows page instances (along with components within pages) to be shared across threads.
However, when debugging, all those fields are still present but have null (or default) values.
When in development mode, it would be great if reading or writing to the fields would "shadow" the value into the field, as well as do the other updates (moving the content to or from the HashMap, etc.).
This would be pointless in production mode (the instance fields would be constantly overwritten by multiple threads) and possibly introduce memory leaks (as temporary objects would be referenced from the fields). However, quite reasonable to do this for development mode.
Improvement related to May 2010 thread: [T5] debugging in eclipse
http://mail-archives.apache.org/mod_mbox/tapestry-users/201005.mbox/%3CAANLkTinOfXeSmALOYxzR-OSd4uZwTDC_Qt1j4igZgVFP@mail.gmail.com%3E
As noted in the thread, values can only be seen when debugging by inspecting the related conduit due to the class transformation that takes place behind the scenes.
Actually, in my experience, this used to be the case but now with the most recent snapshots I can't even do that.
Later on in the thread a suggestion is made to modify UncaimedFieldWorker.
I don't know if this is correct or not but I would think that this would be a useful improvement over the way things currently work.