I here add some info from Firebug which may be significant. 'GET localhost:8080/wap-app/start.action':
CookieJSESSIONID=9726CDF4A527E3D98451140AB69EFA2C; JSESSIONID=BEED739340DDD4370C85A9D12917692A 'GET localhost:8080/webdav/images/.../1px.gif': Cookie JSESSIONID=BEED739340DDD4370C85A9D12917692A Johan 2009/12/22 Johan Thorselius <johan.thorsel...@gmail.com> > The issue now boils down to the following a bit strange thing. Any idea why > this happens ? > > > - request.getSession() returns an incorrect null on Linux, but on Windows > it's OK - under the following circumstances: > > When using Firebug on Firefox I noted that a corporate common .css > references a 1-pixel gif which is not present and visible, hence there is a > '404 Not found' error for the 'GET > localhost:8080/webdav/images/.../1px.gif'. But the preceding 'GET > localhost:8080/wap-app/start.action' is fine. > > In my myValve-class on Linux: > > 'GET localhost:8080/wap-app/start.action' => myValve.invoke() ... > request.getSession() returns a correct session object > > 'GET localhost:8080/webdav/images/.../1px.gif' => myValve.invoke() ... > request.getSession() and request.getSession(true) both returns null > > Same code and same build, in my myValve-class on Windows: > > Both GET => myValve.invoke() ... request.getSession() returns a correct > session object > > > The webapp is built with Struts2/Spring. > > Both Linux and Windows uses Tomcat 6.0.20. > > > On Windows Java version 1.6.0_16 is used > > On RedHat Linux Java version 1.6.0_13 is used > > and.. > > > >> In the "log incorrect event" code, do you return > >> from the valve, or do you continue processing? > > The execution continues down to the bottom with > 'getNext().invoke(req,resp)' > > Johan > > > 2009/12/17 Christopher Schultz <ch...@christopherschultz.net> > > -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Johan, >> >> On 12/17/2009 7:52 AM, Johan Thorselius wrote: >> > request.getSession() returns an incorrect null on Linux, but on Windows >> it's >> > OK. >> >> That's odd... request.getSession() should never return null. This method: >> >> " >> Returns the current session associated with this request, or if the >> request does not have a session, creates one. >> " >> >> > I have an ordinary Struts2 web app deployed on Tomcat 6.0.20, together >> with >> > a JAAS-solution where I have my own Valve class. >> > >> > The Valve repeatedly executes invoke() with the following code-snippet >> (here >> > very much simplified): >> > . >> > . >> > . >> > if (LOGGER.isDebugEnabled()) { >> > if (request.getSession() == null) { >> > // Log incorrect event (1) >> > } else { >> > // Log OK (2) >> > } >> > if (request.getSession(true) == null) { >> > // Log incorrect event (3) >> > } else { >> > // Log OK (4) >> > } >> > } >> > >> > /* >> > * Here a NullPointerException occurs >> > */ >> > request.getSession().setAttribute("...",...); >> >> In the "log incorrect event" code, do you return from the valve, or do >> you continue processing? >> >> > In the first request the session is not lost, everything is fine with >> (2) >> > and (4). In the following requests getSession() returns null (1) and >> (3). >> >> Are you storing the request object anywhere and perhaps using it after >> it's been recycled? >> >> - -chris >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.4.10 (MingW32) >> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ >> >> iEYEARECAAYFAksqoSoACgkQ9CaO5/Lv0PDZ7QCfXwdUPAoU9EPxlEC64f11rlAa >> +0oAoJG3hjVFYbeCvkrXQ14bkvlq9bJZ >> =lF2t >> -----END PGP SIGNATURE----- >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> >