cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerhard Froehlich <g-froehl...@gmx.de>
Subject Re: HttpRequest.getParameter(..) can fail with NPE when characterencoding is set
Date Thu, 23 May 2002 14:49:14 GMT
jakob.dalsgaard@neupart.dk wrote:
> 
> Hi there - I found a small tiny problem and think I've solved it.
> 
> I'm running cocoon 2.0.2 inside Jboss 3.0 RC 3 (using the Jetty web 
> container) -- works fine!
> 
> But living in Denmark I'd like to submit forms containing the ÆØÅ 
> characters; &AElig; &OSlash; and &Aring; for those speaking HTML. But it

> seems that the Jetty container is not setting any character encoding on 
> the request and I thus have to set one myself; which is fine 'cause 
> Cocoon ships with the SetCharacterEncodingAction; and I've verified that 
> this action sets up the right character encoding for me -- the 
> characters are propagated to my CMP 2.0 Beans nicely.
> 
> If, however, I then add an action that pulls a parameter from the 
> Request (taken from the ObjectModel) - and that parameter is not present 
> in the request, I get a Null Pointer Exception:
> 
> java.lang.NullPointerException
> at 
> org.apache.cocoon.environment.http.HttpRequest.decode(HttpRequest.java:300)
> at 
> org.apache.cocoon.environment.http.HttpRequest.getParameter(HttpRequest.java:293) 
> 
>    ...(more staktrace)
> 
> Because: when the org.apache.cocoon.environment.http.HttpRequest has 
> it's own defined character encoding, it will always call the 
> "decode(String)" method - which assumes that the passed String is non-null.
> 
> I know that I can easily work around this - but looking at the other 
> actions in the org.apache.cocoon.acting package I can see that many of 
> them do: "if (request.getParameter("something") != null)" or similar, 
> and thus will start failing if the "SetCharacterEncodingAction" is 
> executed beforehand.
> 
> I have made a small correction to the "encode(String)" that checks for 
> null; and it works for me.
> The check is merely: if (str == null) return null; as a first test in 
> the method.
> 
> I hope this will qualify for CVS ... ;-)

TIA for your contribution. Can you send a patch to bugzilla in the
diff -u format?

Greets
Gerhard

-- 

--------------------------------
Children are hereditary;
if your parents didn't have any,
neither will you.
--------------------------------

Weblogging at: http://radio.weblogs.com/0107791/


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message