Scott, Thanks, no more problems now
Another question was raised several times already. Can official public build of Xerces 2.3.2 be released? I remember you've asked other committers, but nobody answered. But at least nobody complains... Pavel -----Original Message----- From: Scott Nichol [mailto:[EMAIL PROTECTED]] Sent: Tuesday, December 03, 2002 7:59 PM To: [EMAIL PROTECTED] Subject: Re: cvs commit: xml-soap/java/src/org/apache/soap/util/xml XMLParserUtils.java Pavel, Can you test with these changes? Thanks. Scott Nichol ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, December 03, 2002 12:45 PM Subject: cvs commit: xml-soap/java/src/org/apache/soap/util/xml XMLParserUtils.java > snichol 2002/12/03 09:45:11 > > Modified: java/src/org/apache/soap/util/xml XMLParserUtils.java > Log: > Only set Xerces-specific features if we believe we are using a Xerces > factory. Rather than throwing an exception when a feature is set on the > factory, parsers throw when a parser is actually instantiated, which is > a problem. > > Thanks to Pavel for finding this problem and suggesting the fix. > > Revision Changes Path > 1.10 +22 -3 xml-soap/java/src/org/apache/soap/util/xml/XMLParserUtils.java > > Index: XMLParserUtils.java > =================================================================== > RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/xml/XMLParserUtils.java ,v > retrieving revision 1.9 > retrieving revision 1.10 > diff -u -r1.9 -r1.10 > --- XMLParserUtils.java 21 Nov 2002 16:36:58 -0000 1.9 > +++ XMLParserUtils.java 3 Dec 2002 17:45:11 -0000 1.10 > @@ -161,10 +161,29 @@ > dbf.setExpandEntityReferences(expandEntityReferences); > > try { > - dbf.setAttribute("http://apache.org/xml/features/dom/defer-node-expansio n", > - Boolean.FALSE); > + // Some parsers don't throw an exception here, but throw one when the > + // factory creates an instance instead, so try to only do this for > + // Xerces. > + if (dbf.getClass().getName().equals("org.apache.xerces.jaxp.DocumentBuilder Factory")) { > + // speed up processing by turning off deferred node expansion > + dbf.setAttribute("http://apache.org/xml/features/dom/defer-node-expansio n", > + Boolean.FALSE); > + } > } catch (IllegalArgumentException e) { > - // parsers that do not support this option with throw this exception > + // parsers that do not support this option *should* throw this exception > + } > + > + try { > + // Some parsers don't throw an exception here, but throw one when the > + // factory creates an instance instead, so try to only do this for > + // Xerces. > + if (dbf.getClass().getName().equals("org.apache.xerces.jaxp.DocumentBuilder Factory")) { > + // future: protect against DOS attacks through DOCTYPE processing > + dbf.setAttribute("http://apache.org/xml/features/disallow-doctype-decl", > + Boolean.TRUE); > + } > + } catch (IllegalArgumentException e) { > + // parsers that do not support this option *should* throw this exception > } > > /* > > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>