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

Martin Grigorov commented on WICKET-6279:
-----------------------------------------

Good catch, [~svenmeier] !

I think the patch attached to WICKET-3934 would be the best solution. I'll 
apply it shortly.

> AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE does not work after 
> deserialisation
> --------------------------------------------------------------------------------
>
>                 Key: WICKET-6279
>                 URL: https://issues.apache.org/jira/browse/WICKET-6279
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.2.0
>         Environment: Tomcat 7.0
> Windows 7
>            Reporter: Sven Ackermann
>            Assignee: Martin Grigorov
>              Labels: attribute, behavior
>             Fix For: 6.26, 7.6.0, 8.0.0-M3
>
>
> The magic values {{AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE}} and 
> {{AttributeModifier.VALUELESS_ATTRIBUTE_ADD}} do not work correctly after 
> they have been deserialized.
> Imagine you have a page with a component that has sth. added like this:
> {code:java}
> component.add(AttributeModifier.replace("myattribute", 
> AttributeModifier.VALUELESS_ATTRIBUTE_ADD));
> component.add(AttributeModifier.replace("anotherattribute", 
> Model.of(AttributeModifier.VALUELESS_ATTRIBUTE_ADD)));
> component.add(AttributeModifier.replace("thirdattribute", new 
> StringResourceModel("myresourcekey").setDefaultValue(AttributeModifier.VALUELESS_ATTRIBUTE_ADD)));
> {code}
> Once we navigate away from the page, it gets serialized including the String 
> value "VA_ADD" for {{AttributeModifier.VALUELESS_ATTRIBUTE_ADD}}. When we go 
> back (e.g. with browser back button), it is deserialized. But then the 
> deserialized String "VA_ADD" is not anymore the same as 
> {{AttributeModifier.VALUELESS_ATTRIBUTE_ADD}}, so we have an attribute added 
> to our component with value "VA_ADD".
> I'm not sure how this can be resolved or if it can be resolved at all. My 
> workaround is to use an {{AbstractReadOnlyModel}} that always returns 
> {{AttributeModifier.VALUELESS_ATTRIBUTE_ADD}}, so that special value is not 
> serialized at all.
> If it's not possible to manage the deserialisation, then there should be at 
> least some documentation about this problem and maybe convenience code using 
> my workaround with {{AbstractReadOnlyModel}} could be provided.
> Thanks,
> Sven



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to