santiagopg    2004/05/20 13:35:15

  Modified:    java/src/org/apache/xalan/xsltc/runtime
                        AbstractTranslet.java BasisLibrary.java
  Log:
  Fix for Bugzilla 29120. The translet now stores a reference to the 
DocumentBuilderFactory which is used by nodeList2Iterator() in the basis 
library. Note that to reuse that reference you need to use the same transformer 
(not just the same template).
  
  Revision  Changes    Path
  1.54      +18 -1     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
  
  Index: AbstractTranslet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- AbstractTranslet.java     13 May 2004 23:34:12 -0000      1.53
  +++ AbstractTranslet.java     20 May 2004 20:35:15 -0000      1.54
  @@ -27,6 +27,9 @@
   import java.util.Enumeration;
   import java.util.Vector;
   import javax.xml.transform.Templates;
  +import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
  +import javax.xml.parsers.ParserConfigurationException;
   
   import org.apache.xml.dtm.DTM;
   
  @@ -714,4 +717,18 @@
       public void setTemplates(Templates templates) {
        _templates = templates;
       }    
  +    
  +    /************************************************************************
  +     * DOMBuilderFactory caching
  +     
************************************************************************/
  +    protected DocumentBuilderFactory _domFactory = null;
  +    
  +    public DocumentBuilder newDocumentBuilder() 
  +        throws ParserConfigurationException 
  +    {
  +        if (_domFactory == null) {
  +            _domFactory = DocumentBuilderFactory.newInstance();
  +        }
  +        return _domFactory.newDocumentBuilder();
  +    }
   }
  
  
  
  1.77      +5 -6      
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java
  
  Index: BasisLibrary.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- BasisLibrary.java 27 Feb 2004 01:59:31 -0000      1.76
  +++ BasisLibrary.java 20 May 2004 20:35:15 -0000      1.77
  @@ -27,7 +27,6 @@
   import java.util.ResourceBundle;
   
   import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.transform.dom.DOMSource;
   
   import org.apache.xalan.xsltc.DOM;
  @@ -1175,15 +1174,15 @@
                                        Translet translet, DOM dom) 
       {
        // w3c NodeList -> w3c DOM
  -     DocumentBuilderFactory dfac = DocumentBuilderFactory.newInstance();
        DocumentBuilder docbldr = null;
        try {
  -         docbldr = dfac.newDocumentBuilder();
  -     } catch (javax.xml.parsers.ParserConfigurationException e) {
  +         docbldr = ((AbstractTranslet) translet).newDocumentBuilder();
  +     } 
  +        catch (javax.xml.parsers.ParserConfigurationException e) {
            runTimeError(RUN_TIME_INTERNAL_ERR, e.getMessage());
               return null;
  -
        }
  +        
        // create new w3c DOM
        Document doc = docbldr.newDocument();   
           org.w3c.dom.Node topElementNode = 
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to