I am pretty sure this has been the behavior of ParameterParser since it
was first written.  add and append are the same.  That is why there are
several convenience methods for add and only the one for append which
could just be moved into the add(String, String) method.  I would be
interested to see the code that does it differently.  You can still
accomplish a substitution within an action by calling remove and then
add.  And using the ParameterParser in this manner is common usage.

John Gillen wrote:
> 
> We are in the process of upgrading from Turbine v2.0 to v2.1 and have
> encountered a problem with the ParameterParser.add method.  Under v2.0
> if add is invoked for a parameter that is already present in the
> parameter list, the old value is effectively replaced by the new value.
> 
> This did not appear to work under v2.1 and a look at the source code
> reveals that add, now implemented in BaseValueParser, is simply a
> pass-through to append [likewise for v3].  So if the parameter is
> already present, an array of two values is created.  Subsequently, if
> the "scalar" get method is used, the first (old) value is returned.
> This would seem to be a bug, albeit the JavaDoc is not explicit about
> the intended behavior of add.
> 
> By the way, we use this mechanism to pass information from an action to
> a screen.  The parameter in question is passed in via the URL and
> sometimes altered by an action, based on input from an HTML form.  The
> screen then picks up the parameter via the RunData without concern for
> how it was set.
> 
> Any comments on whether this is indeed a bug and/or whether there might
> be a better away to achieve the same effect?
> 
> John Gillen
> Thoughtful Solutions, Inc.
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to