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

Daniel Zwicker commented on WICKET-5252:
----------------------------------------

Hm. Ok. I will tell my team to refactor all places the PropertyModel is used. 
But i believe this i a huge problem. Every tutorial for wicket told you to use 
this PropertyModel! And there is no remark about this behavior! Perhaps you 
understand the problem with this more when i told you what happen in our 
project.

We have these immutable object. Everybody in the backend team knows these 
object. Now in the Frontendteam used new AjaxCheckBox("marker"). So. I have 
told him the cause of our bug and he directly respond "args immutable.. Sorry".

Perhaps a solution would be a configuration switch to configure 
PropertyResolver to throw exceptions in these cases. So everybody can pay 
attention to this.
                
> PropertyResolver breaks immutable objects by calling setAccessible
> ------------------------------------------------------------------
>
>                 Key: WICKET-5252
>                 URL: https://issues.apache.org/jira/browse/WICKET-5252
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 6.8.0
>            Reporter: Daniel Zwicker
>
> If a Bean only have private fields and no setter this object is immutable. 
> The decision to implement such an object has a bunch of implications. e.g. it 
> is thread safe, you can take snapshots of these object to store a version 
> history and so on.
> Now your use of reflection breaks this isolation silently. I believe if 
> somebody want set the values of the object he should implement a setter or 
> provide a public field.   

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to