[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slide-dev
Subject:    cvs commit: jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods XMLResponseMethodBase.
From:       remm () locus ! apache ! org
Date:       2000-11-29 6:13:58
[Download RAW message or body]

remm        00/11/28 22:13:58

  Modified:    src/webdav/client/src/org/apache/webdav/lib/methods
                        XMLResponseMethodBase.java
  Log:
  - Optimization : JAXP is only initialized once, since the doc builder is
    reusable.
  
  Revision  Changes    Path
  1.2       +33 -11    \
jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/XMLResponseMethodBase.java
  
  Index: XMLResponseMethodBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/methods/XMLResponseMethodBase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLResponseMethodBase.java	2000/11/27 06:34:17	1.1
  +++ XMLResponseMethodBase.java	2000/11/29 06:13:57	1.2
  @@ -76,17 +76,31 @@
   import org.xml.sax.InputSource;
   import org.xml.sax.SAXException;
   
  +/**
  + * Utility class for XML response parsing.
  + * 
  + * @author B.C. Holmes
  + * @author Remy Maucherat
  + */
   public class XMLResponseMethodBase
       extends WebdavMethodBase {
   
  +
       // ----------------------------------------------------- Instance Variables
   
  +
       /**
  -     * Response document
  +     * Response document.
        */
       private Document responseDocument = null;
  -
       
  +    
  +    /**
  +     * Document builder.
  +     */
  +    protected static DocumentBuilder builder = null;
  +    
  +    
       // ------------------------------------------------------------- Properties
   
       /**
  @@ -109,20 +123,28 @@
        */
       public void parseResponse(InputStream input)
           throws IOException {
  -
  +        
  +        if (builder == null) {
               try {
                   DocumentBuilderFactory factory = 
                       DocumentBuilderFactory.newInstance();
  -                DocumentBuilder builder = factory.newDocumentBuilder();
  -                responseDocument = builder.parse(new InputSource(input));
  -
  +                builder = factory.newDocumentBuilder();
               } catch (ParserConfigurationException e) {
  -//                throw new IllegalArgumentException("XML Parser Configuration \
                error", e);
  -            } catch (SAXException e) {
  -                throw new IllegalArgumentException(
  -                    "XML parsing error; response stream is not valid XML: " + 
  -                    e.getMessage());
  +                throw new IllegalArgumentException
  +                    ("XML Parser Configuration error: " + e.getMessage());
  +            }
  +        }
  +        
  +        try {
  +            
  +            responseDocument = builder.parse(new InputSource(input));
  +            
  +        } catch (Exception e) {
  +            throw new IOException
  +                ("XML parsing error; response stream is not valid XML: " 
  +                 + e.getMessage());
           }
  +        
       }
   }
   
  
  
  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic