[
https://issues.apache.org/jira/browse/TAP5-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15375842#comment-15375842
]
Thiago H. de Paula Figueiredo commented on TAP5-1803:
-----------------------------------------------------
Hello, [~jkemnade] and [~kaosko]!
To be honest, in hindsight, I'm not sure why {{URLEncoder}} is used over
anything which goes into or comes from request parameters, making them not work
as anyone would expect. Regarding handling of empty string vs null, I don't
think Tapestry should do any encoding about it: if no query parameter with that
name, field receives null; if query parameter with that name but no value,
field receives whatever the contributed {{ValueEncoder}} is for its Java type.
{{URLEncoder}} usage makes sense for activation contexts, and query parameters
are most definitely *not* activation context.
Cheers!
> URL encoding in ActivationRequestParameter is very strict
> ---------------------------------------------------------
>
> Key: TAP5-1803
> URL: https://issues.apache.org/jira/browse/TAP5-1803
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.3.1, 5.4
> Reporter: David Canteros
> Labels: @ActivationRequestParameter, InvalidaArgumenteException,
> URLEncoder,
>
> The URLEncoder that perform the URL encoding process does not include the
> following "unreserved characters" :
> ! ~ * ' ( )
> (see rfc2396 Uniform Resource Identifiers (URI): Generic Syntax, item 2.3)
>
> Because the fix of TAP5-1768, from v5.3.1 the @ActivationRequestParameter
> requires this enconding, which becomes incompatible with the standard.
> Thus, any URL which contains those symbols will throw an
> InvalidaArgumenteException. Tapestry should consider that the
> ActivationRequestParameter is a standar way of parameter sending, and the
> parameters sent in this way probably not have the "strict" coding process of
> the URLEncoder.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)