Richard,
TestXMLUtils has a reference to initDOMFactory. Can you please clean it up as you
think fit? Did
you run "all-tests"?
Thanks,
dims
--- [EMAIL PROTECTED] wrote:
> rsitze 2002/06/13 06:33:04
>
> Modified: java/src/org/apache/axis/utils XMLUtils.java
> Log:
> Patch supplied by Takashi Okamoto to correct thread unsafe
> access to DocumentationBuilderFactory.
>
> Eliminate (redundant!) side-effect in initDOMFactory,
> rename to getDOMFactory, and make private.
>
> Revision Changes Path
> 1.52 +12 -5 xml-axis/java/src/org/apache/axis/utils/XMLUtils.java
>
> Index: XMLUtils.java
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/XMLUtils.java,v
> retrieving revision 1.51
> retrieving revision 1.52
> diff -u -r1.51 -r1.52
> --- XMLUtils.java 12 Jun 2002 18:45:58 -0000 1.51
> +++ XMLUtils.java 13 Jun 2002 13:33:04 -0000 1.52
> @@ -93,7 +93,7 @@
>
> public static final String charEncoding = "ISO-8859-1";
>
> - private static DocumentBuilderFactory dbf = initDOMFactory();
> + private static DocumentBuilderFactory dbf = getDOMFactory();
> private static SAXParserFactory saxFactory;
> private static Stack saxParsers = new Stack();
>
> @@ -171,17 +171,19 @@
> saxFactory.setValidating(validating);
> }
>
> - public static DocumentBuilderFactory initDOMFactory() {
> + private static DocumentBuilderFactory getDOMFactory() {
> + DocumentBuilderFactory dbf;
> try {
> dbf = DocumentBuilderFactory.newInstance();
> dbf.setNamespaceAware(true);
> }
> catch( Exception e ) {
> log.error(JavaUtils.getMessage("exception00"), e );
> + dbf = null;
> }
> return( dbf );
> }
> -
> +
> private static boolean tryReset= true;
>
> /** Get a SAX parser instance from the JAXP factory.
> @@ -231,7 +233,9 @@
>
> public static Document newDocument() {
> try {
> - return dbf.newDocumentBuilder().newDocument();
> + synchronized (dbf) {
> + return dbf.newDocumentBuilder().newDocument();
> + }
> } catch (Exception e) {
> return null;
> }
> @@ -239,7 +243,10 @@
>
> public static Document newDocument(InputSource inp) {
> try {
> - DocumentBuilder db = dbf.newDocumentBuilder();
> + DocumentBuilder db;
> + synchronized (dbf) {
> + db = dbf.newDocumentBuilder();
> + }
> db.setErrorHandler( new ParserErrorHandler() );
> return( db.parse( inp ) );
> }
>
>
>
=====
Davanum Srinivas - http://xml.apache.org/~dims/
__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com