commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Ross" <Kevin.R...@iVerticalLeap.com>
Subject RE: Digester + Logging + Ant NullPointerException
Date Mon, 03 Feb 2003 22:25:29 GMT
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:craigmcc@apache.org] 
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 <Kevin.Ross@iVerticalLeap.com>
> Reply-To: Jakarta Commons Users List <commons-user@jakarta.apache.org>
> To: 'Jakarta Commons Users List' <commons-user@jakarta.apache.org>
> 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:Kevin.Ross@iverticalleap.com]
> Sent: Monday, February 03, 2003 1:13 PM
> To: commons-user@jakarta.apache.org
> 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: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message