I am using the latest and greatest.
It is not that the code used Class.forName(), but the code uses the
digester.getClassLoader().loadClass() that does *not* find the class.
Switching to Class.forName() *works*.
I made the changes in:
ObjectCreateRule.java
SetNextRule.java
In addition, I had to change the FromXmlRuleSet:
1. Add beginning slash:
public static final String DIGESTER_DTD_PATH =
"/org/apache/commons/digester/xmlrules/digester-rules.dtd"
2. ln 153: URL dtdURL = getClass().getResource(DIGESTER_DTD_PATH);
I have consistently seen the DTD issue (#2) in the tomcat 4.x
environments (which we understand has classloading issues), now I see
running in a forked process from ANT (with newenvironment="true"). I
have always had to make my own builds.
Why the need to obtain the classloader and load classes in this manner?
If tomcat and ant have this issue (possibly bad software), shouldn't we
find a better way to workaround this? At least a better message than a
NullPointerException with no stack....
I can provide a diff if your interested. I'm not sure of the answer, I
guess it hinges on the answer to my question of why it is done this way.
-Kevin
-----Original Message-----
From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
Sent: Monday, February 03, 2003 3:33 PM
To: Jakarta Commons Users List
Subject: RE: Digester + Logging + Ant NullPointerException
Which version of Digester are you using? There is only one occurrence
of
"Class.forName()" in the current code base (i.e. the version 1.4 that
was
just released), in DigesterRuleParser. Everything else (correctly) uses
digester.getClassLoader().loadClas().
Could you please try this with the latest and greatest Digester release?
Craig
On Mon, 3 Feb 2003, Kevin Ross wrote:
> Date: Mon, 3 Feb 2003 14:48:06 -0600
> From: Kevin Ross <[EMAIL PROTECTED]>
> Reply-To: Jakarta Commons Users List <[EMAIL PROTECTED]>
> To: 'Jakarta Commons Users List' <[EMAIL PROTECTED]>
> Subject: RE: Digester + Logging + Ant NullPointerException
>
> I'm now using the latest cvs code for logging, which seems to get me
> past the earlier problem, but nonetheless, the problem is now in the
> digester:
>
> [java] [13:47:27.779-main][Digester][ERROR] - End event threw
> exception
> [java] java.lang.NullPointerException
> [java] at
> org.apache.commons.digester.SetNextRule.end(SetNextRule.java:248)
> [java] at
> org.apache.commons.digester.Digester.endElement(Digester.java:773)
> [java] at
> org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)
> [java] at
>
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValid
> ator.java:1480)
> [java] at
>
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentSc
> anner.java:1809)
> [java] at
>
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatc
> h(XMLDocumentScanner.java:1182)
> [java] at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScan
> ner.java:381)
> [java] at
> org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
> [java] at
> org.apache.commons.digester.Digester.parse(Digester.java:1222)
> [java] at
>
org.apache.commons.digester.xmlrules.FromXmlRuleSet.addRuleInstances(Fro
> mXmlRuleSet.java:140)
> [java] at
> org.apache.commons.digester.Digester.addRuleSet(Digester.java:1311)
>
>
>
>
> It is now clear that there are classloading issues (after inspecting
> digester code). I switched in a couple of places the use of the
> Digester.getClassloader().loadClass() for Class.forName() and
everything
> works. Is this a bug? Is there an incompatibility with ANT? Problem
> with 1.4.1?
>
> Kevin Ross
>
>
> -----Original Message-----
> From: Kevin Ross [mailto:[EMAIL PROTECTED]]
> Sent: Monday, February 03, 2003 1:13 PM
> To: [EMAIL PROTECTED]
> Subject: Digester + Logging + Ant NullPointerException
>
> I'm having yet another problem with logging. I figured someone else
had
> already uncovered this and discovered the issue (probably with my
> environment).
>
> Environment
> Win XP Pro
> Java 1.4.1_01
>
> I'm also using Log4j 1.2.7.jar.
>
>
> [java] org.apache.commons.logging.LogConfigurationException:
> java.lang.NullPointerException
> [java] at
> org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:558)
> [java] at
> org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:355)
> [java] at
> org.apache.commons.logging.LogFactory.getLog(LogFactory.java:409)
> [java] at
> org.apache.commons.digester.Digester.<init>(Digester.java:281)
>
>
> Any ideas?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]