Tapestry's URLEncoder isn't the best implementation, I agree. But the bug that you are referring to was indeed fixed. As Thiago *just* answered, your solution would probably be to put in your own URLencoder. Also, you can open up a new JIRA issue about Tapestry's URLencoder now adhering to the W3C Standards.
On Jan 16, 2012, at 12:21 PM, Jochen Frey wrote: > I see what you're saying, you are using Tapestry's URLEncoder. When I do > that, j...@gmail.com becomes: joe$0040gmail.com > > When I pass that like this: /thanks?email=joe$0040gmail.com it indeed works. > > Unfortunately (for me), I get this parameter passed from non-Tapestry code, > and the rest of the internet uses %-encoding > (http://tools.ietf.org/html/rfc3986#section-2), which makes this a problem > for me, especially since this seems to be one of the few places where > Tapestry gives me no way to intercept this behavior (typically Tapestry is > GREAT about that). > > I *think* that the bug report > (https://issues.apache.org/jira/browse/TAP5-1768) that his had been addressed > in TS 5.3.1, but it still doesn't seem to work. > > Maybe I am posting to the wrong list? > > Thanks! > Jochen > > > On Jan 16, 2012, at 8:52 AM, Lenny Primak wrote: > >> I do the same thing (but have embedded slashes (/) instead of the '@' sign) >> and it works perfectly. >> >> On Jan 16, 2012, at 11:47 AM, Jochen Frey wrote: >> >>> That's exactly what I did (see my example below where I show the encoded >>> parameter), which is why the email is sent as: >>> /thanks?email=joe%40gmail.com (and not as j...@gmail.com), but it still >>> breaks. >>> >>> It looks to me like https://issues.apache.org/jira/browse/TAP5-1768 may not >>> be fixed (or not fixed correctly) in TS 5.3.1? >>> >>> Any help appreciated! >>> Jochen >>> >>> On Jan 16, 2012, at 6:18 AM, Lenny Primak wrote: >>> >>>> The query parameter needs to b e URLencoded otherwise it won't pass >>>> validation, which is exactly what happens in your code. Use >>>> URLencoder.encode() or similar. >>>> >>>> >>>> >>>> On Jan 16, 2012, at 12:23 AM, Jochen Frey <joc...@jochenfrey.com> wrote: >>>> >>>>> Hi! >>>>> >>>>> I am using a form to get e-mail signups into salesforce.com. This >>>>> mechanism requires to pass a callback URL which salesforce redirects the >>>>> browser to on completion of the action. I want this callback to have the >>>>> signup email as a query parameter: >>>>> >>>>> ... /thanks?email=joe%40gmail.com >>>>> >>>>> Hence in the receiving page I have an @ActivationRequestParameter >>>>> >>>>> >>>>> public class Thanks { >>>>> @ActivationRequestParameter >>>>> @Property >>>>> private String email; >>>>> >>>>> >>>>> When I do this, I get ComponentEventException: >>>>> org.apache.tapestry5.runtime.ComponentEventException >>>>> Input string 'j...@gmail.com' is not valid; the character '@' at position >>>>> 4 is not valid. >>>>> ... >>>>> >>>>> >>>>> Stacktrace: >>>>> Stack trace >>>>> org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:144) >>>>> org.apache.tapestry5.internal.transform.ActivationRequestParameterWorker$2.handleEvent(ActivationRequestParameterWorker.java:128) >>>>> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$TransformationSupportImpl$1$1.invoke(ComponentInstantiatorSourceImpl.java:443) >>>>> org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$TransformationSupportImpl$1.advise(ComponentInstantiatorSourceImpl.java:439) >>>>> org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86) >>>>> >>>>> Am I doing something wrong, or is the the same bug as mentioned here: >>>>> https://issues.apache.org/jira/browse/TAP5-1768 >>>>> >>>>> I am using TS 5.3.1. Suggestions welcome! >>>>> >>>>> Thanks!!! >>>>> Jochen >>>>> >>>>> --- >>>>> joc...@jochenfrey.com >>>>> +1.415.366.0450 >>>>> @jochen_frey >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>> >>> >>> >>> --- >>> joc...@jochenfrey.com >>> +1.415.366.0450 >>> @jochen_frey >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > --- > joc...@jochenfrey.com > +1.415.366.0450 > @jochen_frey > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org