You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by ar...@apache.org on 2003/08/13 14:48:51 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java

aruny       2003/08/13 05:48:51

  Modified:    java/src/org/apache/xalan/transformer Tag: jaxp-1_3_0-branch
                        TransformerImpl.java
  Log:
  Description: Applying patch for :
  1.As per JAXP1.2 spec if argument to Transformer.setOutputProperties(Properties oformat)
   function is null, any properties  previously set are removed, and  the value will revert
   to the value defined in the templates object.
  2.As per JAXP1.2 spec if Zero-argument default constructor DOMSource()
   is used, and no DOM source is set, then the Transformer will create
   an empty source Document using newDocument().
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.146.2.1 +30 -7     xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
  
  Index: TransformerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
  retrieving revision 1.146
  retrieving revision 1.146.2.1
  diff -u -r1.146 -r1.146.2.1
  --- TransformerImpl.java	27 May 2003 15:47:43 -0000	1.146
  +++ TransformerImpl.java	13 Aug 2003 12:48:51 -0000	1.146.2.1
  @@ -66,6 +66,7 @@
   import java.util.Vector;
   
   import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.transform.ErrorListener;
   import javax.xml.transform.OutputKeys;
   import javax.xml.transform.Result;
  @@ -77,6 +78,7 @@
   import javax.xml.transform.dom.DOMResult;
   import javax.xml.transform.sax.SAXResult;
   import javax.xml.transform.stream.StreamResult;
  +import javax.xml.transform.dom.DOMSource;
   
   import org.apache.xalan.extensions.ExtensionsTable;
   import org.apache.xalan.res.XSLMessages;
  @@ -623,16 +625,16 @@
   
       try
       {
  -        
  +
         // Patch for bugzilla #13863.  If we don't reset the namespaceContext
  -      // then we will get a NullPointerException if transformer is reused 
  -      // (for stylesheets that use xsl:key).  Not sure if this should go 
  -      // here or in reset(). -is  
  +      // then we will get a NullPointerException if transformer is reused
  +      // (for stylesheets that use xsl:key).  Not sure if this should go
  +      // here or in reset(). -is
         if(getXPathContext().getNamespaceContext() == null){
            getXPathContext().setNamespaceContext(getStylesheet());
         }
         String base = source.getSystemId();
  -      
  +
         // If no systemID of the source, use the base of the stylesheet.
         if(null == base)
         {
  @@ -647,15 +649,31 @@
             currentDir = System.getProperty("user.dir");
           }
           catch (SecurityException se) {}// user.dir not accessible from applet
  -              
  +
           if (currentDir.startsWith(java.io.File.separator))
             base = "file://" + currentDir;
           else
             base = "file:///" + currentDir;
  -        
  +
           base = base + java.io.File.separatorChar
                  + source.getClass().getName();
         }
  +      
  +      // As per JAXP1.2 spec if Zero-argument default constructor DOMSource()
  +      // is used, and no DOM source is set, then the Transformer will create
  +      // an empty source Document using newDocument().
  +      if(source instanceof DOMSource ){
  +          DOMSource dSource = (DOMSource)source;
  +          if(dSource.getSystemId() == null && dSource.getNode()== null){
  +              try{
  +                  dSource.setNode(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
  +                  source = dSource;
  +              }
  +              catch(Exception e){
  +              }
  +          }
  +      }    
  +            
         setBaseURLOfSource(base);
         DTMManager mgr = m_xcontext.getDTMManager();
         DTM dtm = mgr.getDTM(source, false, this, true, true);
  @@ -918,6 +936,11 @@
   
       synchronized (m_reentryGuard)
       {
  +		if(oformat == null){
  +       		 m_outputFormat =
  +			 	(OutputProperties) getStylesheet().getOutputComposed().clone();
  +			return ;
  +		}
         if (null != oformat)
         {
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org