Thanks for reporting this Chris.
I fixed it, please check if this is working now.
Carsten
Open Source Group sunShine - b:Integrated
================================================================
Carsten Ziegeler, S&N AG, Klingenderstrasse 5, D-33100 Paderborn
www.sundn.de mailto: [EMAIL PROTECTED]
================================================================
> -----Ursprüngliche Nachricht-----
> Von: Chris Newland [mailto:[EMAIL PROTECTED]]
> Gesendet: Donnerstag, 16. August 2001 13:58
> An: Cocoon Dev
> Betreff: HttpRequest.getCookies() causes NPE in
> XSPCookieHelper.getCookies()
>
>
> Hi All,
>
> I think there is an unhandled case in
> org.apache.cocoon.environment.http.HttpRequest (CVS 1.1.1.1.2.4)
> that causes
> a null pointer exception in
> org.apache.cocoon.components.language.markup.xsp.XSPCookieHelper (CVS
> 1.2.2.1).
>
> XSPCookieHelper.getCookie(Map objectModel ,ContentHandler contentHandler):
>
> Request request =
> (Request)objectModel.get(Constants.REQUEST_OBJECT);
>
> Cookie[] cookies = request.getCookies(); <-- can be null
>
> int count = 0;
>
> String tempStr = null;
>
> Hashtable nodeTable = new Hashtable();
>
> if(cookies.length > 0) <-- causes NPE (XSPCookieHelper line 171)
>
> This seems to be caused by (in HttpRequest ):
>
> public Cookie[] getCookies() {
> if (this.wrappedCookies == null) {
> this.wrappedCookieMap = new HashMap();
> javax.servlet.http.Cookie[] cookies = this.req.getCookies();
> if (cookies != null) {
> this.wrappedCookies = new Cookie[cookies.length];
> for(int i=0; i<cookies.length;i++) {
> HttpCookie cookie = new HttpCookie(cookies[i]);
> this.wrappedCookies[i] = cookie;
> this.wrappedCookieMap.put(cookie.getName(),cookie);
> }
> }
> }
> return this.wrappedCookies;
> }
>
> If
>
> this.wrappedCookies == null
> AND
> cookies == null
>
> then the array wrappedCookies will be return null.
>
> Is this the desired behaviour when no cookies exist?
>
> One solution is to test for null in XSPCookieHelper, another is to change
> HttpRequest.getCookies() so something like:
>
> public Cookie[] getCookies() {
> if (this.wrappedCookies == null) {
> this.wrappedCookieMap = new HashMap();
> javax.servlet.http.Cookie[] cookies = this.req.getCookies();
> if (cookies != null) {
> this.wrappedCookies = new Cookie[cookies.length];
> for(int i=0; i<cookies.length;i++) {
> HttpCookie cookie = new HttpCookie(cookies[i]);
> this.wrappedCookies[i] = cookie;
> this.wrappedCookieMap.put(cookie.getName(),cookie);
> }
> }
> else {
> this.wrappedCookies = new Cookie[0];
> }
>
> }
> return this.wrappedCookies;
> }
>
>
> This is my first post to Cocoon-dev so I'm unsure of what to do
> about this.
> Should I submit it as a bug to BugZilla or would you like me to make the
> change to HttpRequest and submit a patch?
>
> Thanks for your time (and patience :),
>
> Best Regards,
>
> Chris
>
> --
> Chris Newland
> Software Research Engineer
>
> Emorphia Ltd
> Registered in England. 4133002
> Mill House, Station Approach, Harlow Mill, Harlow, Essex, CM20 2EL, UK
>
> Email: [EMAIL PROTECTED]
> Tel: +44 (0)1279 450100
> Fax: +44 (0)1279 450102
>
> Check out FIPA-OS at http://fipa-os.sourceforge.net/
>
> This message may contain information proprietary to Emorphia so any
> unauthorised disclosure, copying or distribution of its contents
> is strictly
> prohibited.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]