[ 
https://issues.apache.org/jira/browse/WICKET-3931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13070564#comment-13070564
 ] 

Juergen Donnerstag commented on WICKET-3931:
--------------------------------------------

I guess it is the easiest and cleanest solution:
pro: applies to all components (you can not miss one, even though it might not 
be needed)
pro: reduced memory footprint.
con: requires to load markup upon the next request. Though loading from 
MarkupCache is cheap. I don't expect any performance penalities.

I wonder if we need to make sure that not by accident the markup gets re-loaded 
after detach. E.g. if a user first calls super.detach()  but than uses 
getMarkup() for whatever reason in his onDetach(). Maybe it's better to cleanup 
the markup after onDetach() has been executed via iterating over the hierarchy 
again and calling setMarkup(null).

It'd be good to add test case as well. 


> Component markup caching inconsistencies
> ----------------------------------------
>
>                 Key: WICKET-3931
>                 URL: https://issues.apache.org/jira/browse/WICKET-3931
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core
>    Affects Versions: 1.5-RC5.1
>            Reporter: Martin Grigorov
>            Assignee: Juergen Donnerstag
>         Attachments: variation.tgz
>
>
> In WICKET-3891 we found that Component#markup field is not being reset 
> between requests. The problem is that this field is transient and it is 
> null-ified only when the page is read from the second level page cache (see 
> https://cwiki.apache.org/confluence/x/qIaoAQ). If the page instance is read 
> from first level cache (http session) then its non-serialized version is used 
> and the markup field value is still non-null.
> In WICKET-3891 this looked like a minor issue with the markup caching in 
> development mode but actually this problem is valid even in production mode.
> See the attached application. When the panel's variation is changed every 
> MarkupContainer inside still uses its old markup. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to