axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davanum Srinivas <d...@yahoo.com>
Subject Re: cvs commit: xml-axis/java/src/org/apache/axis/utils XMLUtils.java
Date Thu, 13 Jun 2002 16:44:33 GMT
Richard,

TestXMLUtils has a reference to initDOMFactory. Can you please clean it up as you think fit?
Did
you  run "all-tests"?

Thanks,
dims

--- rsitze@apache.org 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

Mime
View raw message