Your NPE comes from the transient value not being restored from de-serialization.
Your best chance at this point without a lot of code changes is to
1) Make your log variable transient
2) Make your base class implement HttpSessionActivationListener.
3) Make your implementation of sessionDidActivate():
public void sessionDidActivate(HttpSessionEvent se) {
if (log==null)
log = LogFactory.getLog(this.getClass());
}
public void sessionWillPassivate (HttpSessionEvent se) {
; /* Nothing to do */
}
-Tim
Antony Paul wrote:
Then it throws NullPointerException
rgds
Antony Paul
----- Original Message -----
From: "Shapira, Yoav" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, September 15, 2004 6:05 PM
Subject: RE: Serializable Logging implementation
Hi,
Hmm, you want to be careful with this pattern. I like the private
static one for Loggers -- there are very good reasons it's the
recommended pattern (by log4j, by the java.util.logging folks) and the
one that's used (by Tomcat and most other serious apps I know of).
If you really want to stick with your "base class gets the logger"
pattern, consider marking it as transient.
Yoav Shapira
Millennium Research Informatics
-----Original Message-----
From: Antony Paul [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 15, 2004 8:27 AM
To: Tomcat Users List
Subject: Re: Serializable Logging implementation
I extend a base form which gets the Log as
LogFactory.getLog(this.getClass());
So that no need to define and get a Log instance in subclass. Is there
any
way so that I can follow this pattern.
rgds
Antony Paul
----- Original Message -----
From: "Tim Funk" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, September 15, 2004 4:38 PM
Subject: Re: Serializable Logging implementation
logging instances should be static to the class.
// Commons logging example but a log4j equiv should be easy to find
private static Log log = LogFactory.getLog(MyClass.class);
-Tim
Antony Paul wrote:
Hi,
I used Log4J and commons logging in an ActionForm which is
stored
in
the
session. When I reload the context it is invalidating the session
because it
is non serializable. Is there any work around for this ?. Or do I
have
to
use any other Logger.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]