jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java
changeset 12458 d601e4bba306
parent 12457 c348e06f0e82
equal deleted inserted replaced
12457:c348e06f0e82 12458:d601e4bba306
    53  */
    53  */
    54 public class TrAXFilter extends XMLFilterImpl {
    54 public class TrAXFilter extends XMLFilterImpl {
    55     private Templates              _templates;
    55     private Templates              _templates;
    56     private TransformerImpl        _transformer;
    56     private TransformerImpl        _transformer;
    57     private TransformerHandlerImpl _transformerHandler;
    57     private TransformerHandlerImpl _transformerHandler;
       
    58     private boolean _useServicesMechanism = true;
    58 
    59 
    59     public TrAXFilter(Templates templates)  throws
    60     public TrAXFilter(Templates templates)  throws
    60         TransformerConfigurationException
    61         TransformerConfigurationException
    61     {
    62     {
    62         _templates = templates;
    63         _templates = templates;
    63         _transformer = (TransformerImpl) templates.newTransformer();
    64         _transformer = (TransformerImpl) templates.newTransformer();
    64         _transformerHandler = new TransformerHandlerImpl(_transformer);
    65         _transformerHandler = new TransformerHandlerImpl(_transformer);
       
    66         _useServicesMechanism = _transformer.useServicesMechnism();
    65     }
    67     }
    66 
    68 
    67     public Transformer getTransformer() {
    69     public Transformer getTransformer() {
    68         return _transformer;
    70         return _transformer;
    69     }
    71     }
   104         XMLReader managedReader = null;
   106         XMLReader managedReader = null;
   105 
   107 
   106         try {
   108         try {
   107             if (getParent() == null) {
   109             if (getParent() == null) {
   108                 try {
   110                 try {
   109                     managedReader = XMLReaderManager.getInstance()
   111                     managedReader = XMLReaderManager.getInstance(_useServicesMechanism)
   110                                                     .getXMLReader();
   112                                                     .getXMLReader();
   111                     setParent(managedReader);
   113                     setParent(managedReader);
   112                 } catch (SAXException  e) {
   114                 } catch (SAXException  e) {
   113                     throw new SAXException(e.toString());
   115                     throw new SAXException(e.toString());
   114                 }
   116                 }
   116 
   118 
   117             // call parse on the parent
   119             // call parse on the parent
   118             getParent().parse(input);
   120             getParent().parse(input);
   119         } finally {
   121         } finally {
   120             if (managedReader != null) {
   122             if (managedReader != null) {
   121                 XMLReaderManager.getInstance().releaseXMLReader(managedReader);
   123                 XMLReaderManager.getInstance(_useServicesMechanism).releaseXMLReader(managedReader);
   122             }
   124             }
   123         }
   125         }
   124     }
   126     }
   125 
   127 
   126     public void parse (String systemId) throws SAXException, IOException
   128     public void parse (String systemId) throws SAXException, IOException