You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Pedro Santos (JIRA)" <ji...@apache.org> on 2010/12/18 20:42:06 UTC

[jira] Commented: (WICKET-3269) Review AbstractTextComponent's handling of empty Strings in 1.5

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

Pedro Santos commented on WICKET-3269:
--------------------------------------

Hi Sven, try to use ComponentInitializationListenerCollection instead of ComponentInstantiationListenerCollection.
I think AbstractTextComponent should override convertInput method in order to use an appropriate IConverter setting null for empty strings. This way we maintain the API and users don't need to care about the form component type set or not.
This way the setConvertEmptyInputStringToNull javadoc needs to have a good explanation saying that this property will be respected only if the user do not override the converInput method.

> Review AbstractTextComponent's handling of empty Strings in 1.5
> ---------------------------------------------------------------
>
>                 Key: WICKET-3269
>                 URL: https://issues.apache.org/jira/browse/WICKET-3269
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 1.5-M3
>            Reporter: Sven Meier
>         Attachments: AbstractTextComponent_A.diff, AbstractTextComponent_B.diff, WICKET-3269-test.patch
>
>
> Context:
> With convertEmptyInputStringToNull set to 'true' (the default), AbstractTextComponent converts empty strings to 'null'.
> This works only if the component doesn't know its model type.
> Problem:
> In our application we would like to always keep empty Strings as they are. We tried to use a ComponentInstantiationListener to set convertEmptyInputStringToNull to 'false', but regretfully AbstractTextComponent reverts this setting to 'true' in its constructor.
> Proposals for 1.5 (either A or B):
> A) Change default of convertEmptyInputStringToNull to 'false'.
> - allows applications to keep empty strings as they are,
> - if needed, clients can use a ComponentInstantiationListener to globally set convertEmptyInputStringToNull to 'true' for the old default
> B) Remove support for special handling of empty strings.
> - no special handling in #convertValue(String[]) and #resolveType() needed,
> - no more ambiguity whether ConvertEmptyInputStringToNull has any effect (model type known or not),
> - if needed, clients can use a custom Converter to convert empty strings to 'null'.
> See attached patches, note that no unit tests changes were required.
> Thanks for your consideration.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.