| 
 Xalan-Java version 2.2.D6 
 
   |  |   | 
   
     
       |   |   |    |  Changes since Xalan-Java 2.2.D2 |   |    |   |   |  
  |  |   | 
      Important: Xerces has added a number of DOM level-3 methods to its DOM interfaces. The DOM level-3 proposal
is currently a working draft (it is not yet a W3C recommendation), and Xalan does not support these new methods. 
To run Xalan in the JDK 1.1.8 platform, you must put xalan.jar (with its DOM level-2 interfaces) in front of 
xerces.jar on the system class path. If you want to rebuild Xalan (on JDK 1.1.8 or higher), you must put Xalan 
in front of xerces.jar on the system class path. 
     This beta release includes the following changes:      
     
       - Costin Manolache has slightly modified the CoRoutine stuff so that a you can compile and run everything but the CoRoutineXercesParser without having Xerces on the classpath.
 
  
       - Joseph Kesselman added chunked int array stuff to address our scaling problems that Mukund & co. uncovered.  This was a fairly mechanical, but still substantial, change.  No bugs have yet been discovered that relate to this.  This is probably the most controversial change.
 
         
       - The Process class now outputs incrementally if the output is standard out.  This is mostly for testing purposes, but it makes general sense.
 
  
       - Bug was fixed with setting the incremental flag in TransformerFactoryImpl.  Clearly the change was made but never tested.  Simply a missing 'else'.
 
  
       - Fix for Bugzilla Bug 2275, Xalan did not fire the right templates.  This was substantial and somewhat risky.  Xalan had several problems related to the last() function.  Fixes cover four axes files.
 
                       
       - Change PrintTraceListener to output the file, as well as the line numbers.  This is really a feature change, but simple, and aids diagnosing problems with multi-part stylesheets.
 
         
       - XPath fix: the XPath API wasn't working correctly due to a problem with with NodeSet/NodeIterator adapters.  This fix ended up interacting quite a bit with the #2275 fix.
 
  
       - Fix for the Norm Walsh bug posted 06/20/2001: iterators weren't always being cloned correctly from the variable value stack.  This fix is not without some risk, though we haven't seen any problems since Scott Boag made it.
 
  
       - David Bertoni added missing html element properties to SerializerToHTML.java.
 
  
       - Shance Curcuru modified TransformerFactoryImpl.setAttribute() to accept a String ("true" or "false") as well as a Boolean object to set the value of a Boolean attribute.
 
  
       - TransformerHandlerImpl was threading when incrementality is turned off. Scott Boag has fixed this bug.
        
      
      |  
  
     
      |  |   | 
     
     - Handling xsl:namespace-alias declarations: In release 2.0.D01, we reported the need to do some research concerning exactly how Xalan
     should handle xsl:namespace-alias declarations. As a result of discussions among members of the W3C Working Group on XSL, we have reached a
     more precise consensus on how namespaces should be represented when an xsl:namespace-alias declaration is in effect.
  
     If a literal result element has a namespace prefix, the prefix will be preserved and the namespace URI of the element will be as
     specified in the xsl:namespace-alias element, but the result-prefix is not required to appear in the result. This also applies to the
     two other cases of "Literal namespace URI" mentioned in the XSLT Recommendation on 
     Literal Result Elements. More simply, if the stylesheet calls for
     <axsl:foo> to be output as a literal result element, then it will be output as <axsl:foo> in the result, but the namespace
     associated with this "axsl" prefix will be as designated in the xsl:namespace-alias declaration.
 
  
     - For HTML output, Xalan-Java 2 outputs character entity references (© etc.) for the special characters designated in  
     Appendix A. DTDs of the XHTML 1.0: The Extensible HyperText Markup
     Language. Xalan-Java 1.x, on the other hand, outputs literal characters for some of these special characters.
 
  
     - In conformance with the XSLT Recommendation on the HTML 
     Output Method and Section B.2.1 of the HTML 4.0
     Recommendation, Xalan-Java 2 uses %hh encoding for each byte of the UTF-8 representation of non-ASCII characters in HTML URI
     attributes.
 
  
     - When your stylesheet asks for an explicit carriage-return character (
) to be inserted into the output, it is output during
     the serialization process in escaped form unless escaping has been disabled.  When your stylesheet asks for an explicit line-feed character
     (
) to be output, the system-default line-break character(s) is/are output during the serialization process.  Also keep in mind that
     the XML parser normalizes line-breaks to line-feeds when it sends character events to the processor.
 
  
     - If your XML input is a DOM, use the javax.xml.parsers.DocumentBuilderFactory setCoalescing() method to set coalescing to true (it is
     false by default), if you want to append CDATA sections to adjacent text sections to form a single text node (as the XPath standard calls
      for), and if the XML parser supports this feature (Xerces-Java version 1.4.1 does not).
 
      
      |  
  
      |  |   | 
      All known Xalan-Java bugs are listed in Bugzilla (the Apache bug database). For a list of open bugs with links to each bug
      report, see XalanJ2 open bugs. If you find a new bug, please enter a XalanJ2 bug report in this
      database. 
       | Before you can enter your first bug report, you must submit your email address to Bugzilla and receive a password. |    
     We strongly encourage you write patches for problems you find and submit them to
      xalan-dev@xml.apache.org. We review the patches we receive to make sure they do not break something else, and (assuming they 
     do not) include them in our next release. In the interest of fixing bugs, adding enhancements, and addressing outstanding design
     issues, we sincerely want (and need!) your active participation in the ongoing development of Xalan. 
     Xerces bug in Xerces-Java version 1.4.1: 
     
       - Xerces-Java version 1.4.1 does not process namespaces in SAX events when parsing UTF-16 documents, which causes Xalan-Java to fail with UTF-16
        documents. Xerces will post a fix shortly.
 
  
      
      |  
       
     
      |  |   |  
        The Xalan-Java version 2.2.D6 has been tested with Xerces-Java version 1.4.1. The Xalan-Java version 2.2.D6 download from xml.apache.org includes xerces.jar from Xerces-Java version 1.4.1. For information about including xerces.jar on the system class path, see Setting up the system class path. 
       Important You may experience unpredictable anomalies if your Xalan and Xerces builds are not in synch. If you download an update to Xalan, check the release notes to determine which version of Xerces you should use. 
       
      |  
  
     
       
   |  
  
    
 |  |   | 
 For this release, please note the following changes, additions, omissions, problems, procedures for running demos, and new support 
for the TrAX API.
 
  |   |   |    |  Changes and New Features for Xalan-Java version 2.2.D6 |   |    |   |   |  
  |  |   | 
 XSLTC source code updates since Xalan-Java 2.1.0: - Committed by tmiller@apache.org on 05/23/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Text.java Committer's log entry: bug fix 1403, output escaping fixed
 
  - Committed by tmiller@apache.org on 05/23/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime TextOutput.java Committer's log entry: bug fix 1403, output escaping fixed
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Parser.java Committer's log entry: stylesheet compilation error listening added for
 TrAX support
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler XSLTC.java Committer's log entry: stylesheet compilation error listening added for
 TrAX support
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: stylesheet compilation error listening added for
 TrAX support
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: Transformer factory's setErrorListener() now throws
 IllegalArgumentException is listener is null
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: translet transformation errors now forwarded to
 TrAX error listener when applicable
 
  - Committed by tmiller@apache.org on 06/05/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 AbstractTranslet.java Committer's log entry: translet transformation errors now forwarded to
 TrAX error listener when applicable
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime AttributeList.java Committer's log entry: Added a constructor for copying an org.xml.sax.Attributes to our
 org.apache.xalan.xsltc.runtime.AttributeList.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
 ApplyTemplates.java Attribute.java
 AttributeSet.java AttributeValueTemplate.java
 BinOpExpr.java CallTemplate.java Comment.java
 ConcatCall.java Constants.java Copy.java
 CopyOf.java DecimalFormatting.java
 DocumentCall.java Expression.java Fallback.java
 ForEach.java FormatNumberCall.java
 FunctionAvailableCall.java FunctionCall.java
 If.java Import.java Include.java Key.java
 LiteralAttribute.java LiteralElement.java
 LiteralExpr.java LogicalExpr.java Message.java
 NamespaceAlias.java Number.java Output.java
 Param.java Parser.java ProcessingInstruction.java
 QName.java RelationalExpr.java Sort.java
 Stylesheet.java SymbolTable.java
 SyntaxTreeNode.java Template.java Text.java
 TransletOutput.java UnaryOpExpr.java ValueOf.java
 Variable.java When.java Whitespace.java
 WithParam.java XSLTC.java XslAttribute.java
 XslElement.java xpath.cup
 java/src/org/apache/xalan/xsltc/compiler/util
 MethodType.java Committer's log entry: Removed the intermediate DOM used to contain the input document (the
 stylesheet) for the compiler. The compiler now uses SAX2 to import
 the stylesheet, and all references to DOM interfaces have been removed.
 This means that most classes representing XSL elements have been
 changed, but most classes representing XPath functions, expressions
 and patterns are unchanged.
 PR: After suggestion from Scott Boag
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Added: java/src/org/apache/xalan/xsltc/compiler
 UnsupportedElement.java Committer's log entry: Adding a class for handling unsupported stylesheet elements
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/dom DOMImpl.java Committer's log entry: Minor fix to make sure that attributes are processed in the correct order.
 PR: n/a
 Obtained from: n.a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 DefaultSAXOutputHandler.java Committer's log entry: Minor change in output indentation/line feeds.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xmp.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler
 LocationPathPattern.java Parser.java Template.java Committer's log entry: Fixed the code that resolves conflicts between templates with identical
 patterns. The order of the templates is not taken into account - after
 import precedence and priority has been checked.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 DefaultSAXOutputHandler.java Committer's log entry: Reverted changes to SAX output handler.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by tmiller@apache.org on 06/06/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Parser.java
 Template.java xpath.cup Committer's log entry: unified Parser error reporting to use Mortens
 reportError routine
 
  - Committed by morten@apache.org on 06/07/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java
 FunctionCall.java Otherwise.java Param.java
 RelationalExpr.java Stylesheet.java
 SyntaxTreeNode.java Variable.java When.java
 XSLTC.java XslElement.java Committer's log entry: Updated a few classes that were still calling Parser.addError(),
 Parser.addWarning() and Parser.addFatalError() to use the new common
 error handler Prarser.reportError(int category, ErrorMsg message).
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/08/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Parser.java
 java/src/org/apache/xalan/xsltc/runtime DefaultRun.java Committer's log entry: Added two lines of code to explicitly set the feature
 "http://xml.org/sax/features/namespaces" of the SAXParser to "true".
 The default is "true" but xerces seems to set it to "false", and this
 caused some problems for our Stylesheet and XML doc parsers (which are
 both using SAX2).
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/08/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Constants.java
 Parser.java
 java/src/org/apache/xalan/xsltc/runtime DefaultRun.java Committer's log entry: A few more changes to make sure the parsers used are namespace aware.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/08/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
 SyntaxTreeNode.java XslAttribute.java
 XslElement.java Committer's log entry: The change from using DOM to using SAX in the stylesheet input caused some
 of the elements in the Abstract Syntax Tree (AST) to be out of order. I
 added a few lines of code to the xsl:element/attribute handling code to
 fix this.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/11/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler AttributeSet.java
 Choose.java Constants.java If.java
 LiteralElement.java Stylesheet.java
 UseAttributeSets.java When.java XSLTC.java
 XslAttribute.java Committer's log entry: This putback contains three fixes:
 o) fix for complex <xsl:attribute-set> inheritance structures
 o) fix for xsl:element-available() function used in <xsl:when> or
 <xsl:if> to test support for various extension elements
 o) fix for preserving namespace prefixes for <xsl:attribute> output.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/11/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Constants.java
 UseAttributeSets.java ValueOf.java
 XslAttribute.java
 java/src/org/apache/xalan/xsltc/compiler/util
 AttributeSetMethodGenerator.java Committer's log entry: Fix to allow iterator access within attribute sets. This is necessary for
 attribute sets that contain attributes whose values are generated by XSL
 functions such as position() and last().
 Obtained from: test mk013
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/11/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime TextOutput.java Committer's log entry: Added output character escaping for non-breaking space characters.
 I cannot believe we've waited this long before doing this. Madness!
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by tmiller@apache.org on 06/11/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler XSLTC.java
 Parser.java Committer's log entry: support for java.io.InputStream StreamSources
 
  - Committed by tmiller@apache.org on 06/11/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransletTemplates.java Committer's log entry: support for java.io.InputStream StreamSources
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java Committer's log entry: Fix for bug 1511. Predicates on the format ((a or b) and c) are not
 handled correctly. I added a small piece of code to direct the true-list
 of the OR expression to the beginning of the AND test.
 PR: Bugzilla 1511
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
 TextOutput.java Committer's log entry: Fix attribute node-set comparisons. There was a bug in one of the compare()
 methods of the BasisLibrary class which prevented attribute values from
 being compared. The method compared node IDs instead of node values.
 Pretty stupid bug, but now it is solved anyway.
 PR: Bugzilla 1409
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Mode.java Committer's log entry: Fix to make sure that the implicit "text()" pattern is run when templates
 containing "text()" in their pattern fail. XSLTC would not previously
 invoke the built-in pattern for "text()" if a stylesheet contained a
 template such as <xsl:template pattern="foo/bar/text()" .../>
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler XslElement.java Committer's log entry: Modified test for legal element names in <xsl:element>. The element name is
 treated as an attribute value. Whitespaces are not allowed in plain text
 element names, but should be allowed inside "{...}" attribute values.
 PR: Bugzilla 1489
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/dom DOMImpl.java Committer's log entry: A fix for the preceding:: iterator
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/dom DOMImpl.java Committer's log entry: Minor re-adjustment to last fix for preceding:: iterator
 PR: 1407
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler ForEach.java
 XSLTC.java Committer's log entry: Fix to prevent compiler warnings to be output more than once.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler AttributeSet.java Committer's log entry: Final fix (for now) for attribute sets. In cases where multiple
 <xsl:attribute-set.../> elements make up one attribute set (ie. they share
 the same name) attributes that occured last in the stylesheet will take
 precedence.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by tmiller@apache.org on 06/12/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: added support for java.io.InputStream StreamSources
 
  - Committed by morten@apache.org on 06/13/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java Committer's log entry: Fix for code handling logical expressions and combinations of logical
 expressions. Mindblowing stuff, but it now seems to work as it should.
 Added another few lines of code to properly direct the program flow in
 compiled predicates with various combinations of "and" and "or" expressions.
 PR: Bugzilla 1511
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/13/2001
 Modified: java/src/org/apache/xalan/xsltc/dom SingletonIterator.java Committer's log entry: Fix for singleton iterators encapsulating variable references.
 PR: Bugzilla 1412
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/14/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler LiteralElement.java Committer's log entry: Added one-line fix to prevent null-pointer error. Simple code cleanup.
 PR: n/a
 Obtained from: suggestion by Guoliang Cao <cao@ispsoft.com>
 Submitted by: cao@ispsoft.com
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/15/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java Committer's log entry: Fix to prevent compile-time null-pointer exceptions for certain logical
 expressions. Some nexted AND-expressions would cause this error because
 their true-list would not be backpatched. This would result in an
 instruction list with one or more branch instructions with no target,
 such as a GOTO(null) or an IFEQ(null) instruction.
 PR: none, bug found in test run and fixed immediately
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by curcuru@apache.org on 06/17/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler
 AbsoluteLocationPath.java ApplyImports.java
 ApplyTemplates.java CastExpr.java CopyOf.java
 DocumentCall.java EqualityExpr.java Expression.java
 FilterExpr.java FilterParentPath.java ForEach.java
 FunctionCall.java IdKeyPattern.java Key.java
 KeyCall.java NameBase.java ParentLocationPath.java
 Parser.java Predicate.java RelationalExpr.java
 Step.java UnionPathExpr.java
 java/src/org/apache/xalan/xsltc/compiler/util
 NodeSetType.java NodeType.java ReferenceType.java
 ResultTreeType.java Type.java
 java/src/org/apache/xalan/xsltc/dom UnionIterator.java
 java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java Committer's log entry: OK, I'm going to make a wild guess and assume that sboag's recent commit
 of /NodeSet/NodeSetDTM/ got a little out of control and shouldn't have
 gone down into org.apache.xalan.xsltc - undone to fix compile error
 
  - Committed by morten@apache.org on 06/18/2001
 Removed: java/src/org/apache/xalan/xsltc/compiler/util
 NodeSetType.java Committer's log entry: Removing NodeSetType (renamed to NodeSetDTMType).
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by morten@apache.org on 06/18/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler/util Type.java Added: java/src/org/apache/xalan/xsltc/compiler/util
 NodeSetDTMType.java Committer's log entry: 
 
  - Committed by morten@apache.org on 06/18/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler/util Type.java Added: java/src/org/apache/xalan/xsltc/compiler/util
 NodeSetType.java Removed: java/src/org/apache/xalan/xsltc/compiler/util
 NodeSetDTMType.java Committer's log entry: 
 
  - Committed by morten@apache.org on 06/19/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler ContainsCall.java
 FunctionCall.java If.java LogicalExpr.java
 Param.java QName.java StartsWithCall.java
 SymbolTable.java SyntaxTreeNode.java Template.java
 Variable.java xpath.cup
 java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java Committer's log entry: Fix for function calls used as clauses in logical expressions.
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by Tom.Amiro@Sun.COM on 06/19/2001
 Committer's log entry: 
> Fix for function calls used as clauses in logical expressions.
> Submitted by: morten@xml.apache.org
> Reviewed by: morten@xml.apache.org
>
>
 
  - Committed by Morten.Jorgensen@sun.com on 06/19/2001
 Committer's log entry: 
> > Fix for function calls used as clauses in logical expressions.
> > Submitted by: morten@xml.apache.org
> > Reviewed by: morten@xml.apache.org
> >
> >
 
  - Committed by tmiller@apache.org on 06/25/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: added check to see if stylesheet is already an URL
 
  - Committed by tmiller@apache.org on 06/25/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransletTemplates.java Committer's log entry: added check to see if stylesheet is already an URL
 
  - Committed by tmiller@apache.org on 06/25/2001
 Added: java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java Committer's log entry: proto
 
  - Committed by tmiller@apache.org on 06/25/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 TransformerFactoryImpl.java Committer's log entry: removed debug statements
 
  - Committed by tmiller@apache.org on 06/26/2001
 Removed: java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java
 TransformerFactoryImpl.java TransletTemplates.java Committer's log entry: in process of moving these to new subdir
 
  - Committed by tmiller@apache.org on 06/26/2001
 Added: java/src/org/apache/xalan/xsltc/trax TrAXFilter.java
 TransformerFactoryImpl.java TransletTemplates.java Committer's log entry: moved from runtime subdir to its own trax subdir
 
  - Committed by tmiller@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/trax
 TransformerFactoryImpl.java Committer's log entry: fixed bug with deriving translet name from
 stylesheet name that included paths, e.g. /tmp/foo.xsl
 
  - Committed by morten@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Predicate.java Committer's log entry: This update allows variables that contain references to result-tree fragments
 to be used inside position filters.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
  - Committed by tmiller@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/runtime
 AbstractTranslet.java Committer's log entry: added url handling in doTransform
 
  - Committed by tmiller@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/trax
 TransformerFactoryImpl.java Committer's log entry: added a new sys property called 'transletPool'
 to allow user to set the destination directory for generated translets
 
  - Committed by tmiller@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/trax TransletTemplates.java Committer's log entry: added a new sys property called 'transletPool'
 to allow user to set the destination directory for generated translets
 
  - Committed by tmiller@apache.org on 06/27/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler XSLTC.java Committer's log entry: made private method setDestDirectory() public to
 support the new transletPool system property.
 
  - Committed by morten@apache.org on 06/28/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Predicate.java
 Step.java Stylesheet.java VariableRef.java
 java/src/org/apache/xalan/xsltc/compiler/util
 MethodGenerator.java NodeSortRecordGenerator.java
 ResultTreeType.java TestGenerator.java Committer's log entry: Various bugfixes in the way auxiliary classes access variables/fields in
 the main translet class. Fixes a few VAR tests and customer tests.
 Pmorten@xml.apache.org:
 
  - Committed by morten@apache.org on 06/29/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler Choose.java
 ElementAvailableCall.java
 FunctionAvailableCall.java Parser.java When.java Committer's log entry: Fix for element-available() and function-available() calls. Ties these
 calls to tables in the XSL parser and the symbol-table (the actual
 implementation) instead of using redundant and not-up-to-date tables
 in the classes that implement the X-avaiable() calls.
 I also cleaned up the Choose call so that it now properly handles
 all types of function calls in the xsl:when elements' test clause.
 
  - Committed by morten@apache.org on 06/29/2001
 Modified: java/src/org/apache/xalan/xsltc/compiler ForEach.java
 Param.java Variable.java
 java/src/org/apache/xalan/xsltc/compiler/util
 MethodGenerator.java Committer's log entry: Added a fix for local variables inside nested xsl:for-each elements.
 Local variables are usually not initialized to any default value (such as
 with general Java classes), because code compiled for <xsl:variable>
 elements always assign values to variable slots before they are accessed.
 But the code structure generated by nested <xsl:for-each> elements is too
 much for the JVMs verifier to get around, so we have to initialize all
 local variables inside such loops to zero, false, null, whatever.
 This takes care some of our runtime-errors caused by apparent corrupt code.
 (The JVMs verifier thinks that it is corrupt, but it isn't really.)
 PR: none
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org
 
   
 |  
  
 
 |  |   | 
  - Casting variables: XSLTC requires you to explicitly type cast values 
  returned by variables or expressions, when you use them in tests. Always a good
  practice, but it may seem like overkill in some in contexts, where other XSLT processors
  automatically assume or convert to the correct type. For example. unless you cast $country
  to a string in the following apply-templates, entry nodes whose <country> elements
  contain a string matching the global $country parameter are NOT selected.
  
    <xsl:apply-templates select="entry[country=string($country)]"/> 
  - Order dependency of conditions within a predicate: If you have a predicate in a select or match
  expression that has multiple conditions, one of which contains a union (X or Y), put it last. 
  Otherwise, the predicate fails to match node that it should.
 
  - When using DOM caching, as shown in the Servlet demo, if the source document is local to the 
  server, the cache is not refreshed when the source XML document is modified. This 
  problem does not apply when the source is associated with a URL.
 
  - If you have a list of references included or imported stylesheets, put any with 
  a relative path last; otherwise, stylesheets in the current directory are not found.
 
  - [1] should be treated equivalent to position()=1, but it is not. Therefore, if 
  you get unexpected results using such shortcut positional predicates, substitute the 
  full postion()= version.
 
  - XSLTC fails to match existing nodes when match expressions have 
  multiple steps with predicates containing the position function.
  The following examples are taken from the XSLTMark oddtemplates.xsl test:
  
      match='top/*[position()=2]' 
      match='top/*[6]/kid[2]' 
      match='top/*[position()=last()]'
  
  - XSTLC has problems with output escaping, see bug 1403.
 
  - Case-order option with sorting is ignored.
 
  - As a minor side-effect of implementing simplified stylesheets, if you inadvertenly 
  go to compile a stylesheet and give the name of the .xml doc instead of the .xsl doc,
  it may compile without a warning. In some cases, the compiler aborts with an error 
  about too many branches.
 
 
 |  
  
 |  |   | 
 XSLTC provides demos for using XSLTC as a servlet and as a handler for 
Brazil (a new and powerful Web techology from Sun labs). To run these demos,
download Brazil from sunlabs: 
    http://research.sun.com/research/download/index.html 
and the java extensions for servlets from Sun: 
    
http://java.sun.com/products/servlet/download.html
 
The translet must be specified as a pure class name, accessible
through the Brazil handler's classpath. For example: 
    translet=mk054 
The document must be specified as a valid URL. For example: 
    document=http://server/path/to/filename.xml 
If the file is local to the Brazil handler, it has to be
specified using the "file:filename.xml" format. 
  | You also need to make the Brazil and javax classes available from your classpath |   
See also: sample JAXP translets. 
 |  
  
 |  |   | 
 
The Translet API has been extended to conform with the JAXP1.1 TrAX model.
This release contains the first implementation of that extension. Two
new classes have been added to the Translet XSLT codebase, they are: 
(1) org.apache.xalan.xsltc.runtime.TransformerFactoryImpl - 
    the Translet implementation of a SAXTransformerFactory. 
(2) org.apache.xalan.xsltc.runtime.TransletTemplates -
    the Translet implementation of a Templates object. 
The existing XSLT class 'org.apache.xalan.xsltc.runtime.AbstractTranslet'
that implements the Translet interface is now also extending the 
javax.xml.transform.Transformer abstract class.
 
This implementation is only a partial implementation, with many limitations.
These limitations include:
 
- Currently  'StreamSource' and 'StreamResult' are the only
 TrAX Sources and Results that are supported.
 
- The translet is compiled everytime a call is made to the
 
TransformerFactoryImpl 'newTransformer()' method. 
- The translet is compiled everytime a call is made to the 
 
TemplateFactoryImpl 'newTransformer()' method. 
- Translet are currently not cached. (See (2) and (3)).
 
- Several abstract methods from SAXTransformerFactory still need to
be implemented in the xsltc.runtime.TransformerFactoryImpl class:
  
    TemplatesHandler newTemplatesHandler() 
    TransformerHandler newTransformerHandler() 
    TransformerHandler newTransformerHandler(Source src) 
    TransformerHandler newTransformerHandler(Templates templates) 
    XMLFilter newXMLFilter(Source src) 
    XMLFilter newXMLFilter(Templates templates) 
- Several abstract methods from Transformer still need to be implemented in the 
AbstractTranslet class:
  
    ErrorListener getErrorListener() 
    void setErrorListener(ErrorListener) 
    Properties getOutputProperties() 
    String getOutputProperty(String name) 
    void setOutputProperties(Properties props) 
    void setOutputProperty(String name, String value) 
    URIResolver getURIResolver() 
    void setURIResolver(URIResolver resolver) 
- Abstract method from Templates still need to be implemented in the TransletTemplates class:
  
    Properties getOutputProperties() 
- Several abstract methods from TransformerFactory still need to be implemented 
in the 
xsltc.runtime.TransformerFactoryImpl class:
  
    ErrorListener getErrorListener() 
    void setErrorListener(ErrorListener listener) 
    Object getAttribute(String name) 
    void setAttribute(String name, Object value) 
    boolean getFeature(String name) 
    URIResolver getURIResolver() 
    void setURIResolver(URIResolver resolver) 
    Source getAssociatedStylesheet(Source src, String media, String title, 
        String charset) 
    Templates newTemplates(Source xslSrc) 
    Transformer newTransformer() 
- Whenever possible, the required methods that are currently unimplemented will throw an 
exception if someone tries to call them- this will alert the user that the method is not implemented. 
The message is of the form:
  
    "<Class Name>:<Method Name>( <args> ) not implemented yet."
 
 
 |  
  
 |  |   | 
 XSLTC Changes for Xalan-Java 2.1.0 
The Sun XSLTC team (david.hofert@east.sun.com, tom.amiro@east.sun.com, todd.miller@east.sun.com, 
morten.jorgensen@Ireland.sun.com) has checked XSLTC into the Xalan
source tree, and we have begun the process of merging XSLTC into Xalan. XSLTC provides a compiler for compiling
stylesheets into translets, and a streamlined runtime environment for using translets to transform XML input. 
In the near term, XSLTC will appear in a separate JAR file (xsltc.jar) with its own API and command-line
utilities. You can already use the same JAXP interfaces to perform
transformations with the Xalan transformer and with translets. Over time, we plan to merge the two codebases.
See XSLTC Design Documents. 
Since this is the first release of XSLTC on Apache (xml.apache.org), changes are  
relative to Preview 5 of XSLTC posted on www.sun.com/xml/developers. 
  - Simplified stylesheets are now implemented.
 
  - Base package name has changed from 
com.sun.xslt to org.apache.xalan.xsltc 
  - You no longer have to get the BCEL.jar file; it is included in the distribution.
 
  - The Project X parser components and APIs have all been replaced with JAXP equivalents. 
  Consequently, you may deploy XSLTC with JAXP-conformant parsers, such as Xerces or Crimson.
 
  - Previously undocumented feature: -x. You can use the -x option on the java command line when you
  compile translets or run them to get more detailed information on errors.
 
  - Addition of -s to DefaultRun - a new -s option has been added to the DefaultRun class 
  for use with test auotmation. When you use the option, it prevents System.exit() from being called when 
  and exception is encountered.
 
 
 |  
  
 |  
    
    
   |  |   | 
    |  |   | 
      Apache Ant is a flexible, powerful, and easy-to-use Java build tool that we include with the
     Xalan-Java distribution. The Ant JAR file is in the bin directory, and the cross-platform XML build file (build.xml) is in 
     the root directory along with a Windows32 batch file (build.bat) and a UNIX shell file (build.sh). The build file defines 
     the "targets" that you can use Ant to build. The batch and shell files set up the classpath and launch Ant with the target 
     (and any other arguments) you provide. 
     Instructions for using Ant 
     
       - Set the JAVA_HOME environment variable to the JDK root directory.
  
       If you are using JDK 1.1.8, you must also put classes.zip in the JDK bin directory on the classpath. You can use Ant 
       with JDK 1.1.8 to compile and jar the Xalan-Java source files, but you must have JDK 1.2.2 or higher to build the
       documentation.
 
  
       - Depending on your environment, run the batch file (build.bat) or shell file (build.sh) from the Xalan-Java root
       directory, optionally with arguments (see the table of targets below).
  
       The batch/shell file adds several JAR files to the classpath and launches Ant with any arguments you provide. If you
       provide no target, Ant compiles the source files and rebuilds xalan.jar (the "jar" target). 
      
     You can also set up your classpath manually (see build.bat or build.sh for the details), and then run Ant as
     follows:
  
     java org.apache.tools.ant.Main target
  
     where target is nothing (for the default target) or one of the following. 
     
       | Target 
       | What Ant does 
       |  
       | compile 
       | compiles Xalan-Java in build/classes. 
       |  
       | jar (the default) 
       | creates xalan.jar in the build directory 
       |  
       | samples 
       | compiles and jars the sample apps in build/xalansamples.jar 
       |  
       | servlet 
       | compiles and jars the sample servlet in build/xalanservlet.jar 
       |         
       | docs 
       | creates the HTML User's Guide in build/docs 
       |  
       | javadocs 
       | generates the API documentation in ./build/docs/apidocs 
       |  
       | dist 
       | generates a complete distribution tree with zip and tar.gz distribution files in build 
       |  
       | clean 
       | purges the build and distribution 
       |   
   
  If you build a target that depends on other targets, Ant creates those other targets in the correct order. 
    |  
   
    |  |   | 
      The Xalan-Java build is in xalan.jar. The Xalan-Java source code tree is in the src directory. 
     If you are using Ant, the target is jar (the default). For more information, see Using
     Ant. 
     If you want to do the build without Ant, keep the following in mind: 
     
     - Set the classpath to include the src directory, xerces.jar, bsf.jar, and bsfengines.jar.
 
     - Use a Java compiler (such as the IBM Just-In-Time compiler or the Sun javac) to compile all the .java files in the src
     tree. 
 
     - Use the Sun jar utility to store the resulting .class files in xalan.jar
 
      
    |  
  
    
     |   |   |    |  Rebuilding the Xalan-Java documentation |   |    |   |   |  
  |  |   | 
      Xalan-Java includes a number of XML source files, XSL stylesheets, document type definition (DTD)
      files, entity relationship (ENT) files, graphics, and a JavaScript file that provide the input for the Xalan
      HTML User's Guide, and the overview and package-level documents used during the generation of Javadoc. 
      To rebuild the documentation, you must use the StyleBook tool and the JDK 1.2.2 java and javadoc
      tools. StyleBook (which uses Xalan and Xerces) is in stylebook-1.0-b2.jar. Some of the document definition files,
      stylesheets, and resources are stored in xml-site-style.tar.gz, and are unzipped when you run Ant as described
       below. 
      You can use Ant with the docs target to regenerate the User's Guide and with the javadocs target to regenerate the
      Javadoc API documentation. For more information, see Using Ant. 
      If you want to rebuild the documentation without using Ant, keep the following in mind: 
       
       - Unzip xml-site-style.tar.gz into the xdocs directory (the operation places files in a number of subdirectories).
       
 
  
       - Be sure stylebook-1.0-b2.jar, xalanjdoc.jar, xalan.jar, bsf.jar, bsfengines.jar, and xerces.jar are on the class
       path.
 
  
       - To build doc in a build/docs subdirectory, run StyleBook from the xdocs directory as follows:
  
       java org.apache.stylebook.StyleBook "targetDirectory=../build/docs/" sources/xalanLocal.xml style
       
 
  
       - To build the HTML source files that javadoc needs for the TrAX top-level and package-level documentation, add
       a build/docs/apdidocs/javax/xml/transform directory and run the Xalan command-line utility from the xdocs directory 
       as follows (all one line):
  
java org.apache.xalan.xslt.Process 
  -in sources/trax/trax.xml
  -param package-root '../../../src/'
  -xsl style/stylesheets/spec.xsl 
  -out build/docs/apidocs/javax/xml/transform/trax.html
 
  
        - Before you run javadoc, make sure the following directory structure exists under the Xalan root
         directory: build/docs/apidocs.
 
  
       - To build the API documentation, run the JDK 1.2.2 javadoc tool from the xdocs directory (all one line):
  
javadoc -doclet xalanjdoc.Standard 
 -docletpath ../bin/xalanjdoc.jar 
 -private
 -overview ../src/javadocOverview.html -sourcepath ../src 
 -group TrAX "javax.xml.transform*" 
 -group Xalan_Core "org.apache.xalan.processor:
        org.apache.xalan.templates:
 org.apache.xalan.transformer"
 -group XPath "org.apache.xpath*"
 -group Utilities "org.apache.xml.utils*"
 -group Xalan_Other "org.apache.xalan.client:
        org.apache.xalan.dtm:
 org.apache.xalan.extensions:org.apache.xalan.res:
 org.apache.xalan.stree:org.apache.xalan.trace:
 org.apache.xalan.xslt" 
 -group Xalan_Extensions "org.apache.xalan.lib*" 
 -group Serializers "org.apache.xalan.serialize" 
 org.apache.xalan.client org.apache.xalan.dtm 
 org.apache.xalan.extensions org.apache.xalan.lib 
 org.apache.xalan.lib.sql org.apache.xalan.processor 
 org.apache.xalan.res org.apache.xalan.stree 
 org.apache.xalan.templates org.apache.xalan.trace 
 org.apache.xalan.transformer org.apache.xalan.xslt 
 org.apache.xpath org.apache.xpath.axes 
 org.apache.xpath.compiler org.apache.xpath.functions 
 org.apache.xpath.objects org.apache.xpath.operations 
 org.apache.xpath.patterns org.apache.xpath.res
 org.apache.xalan.serialize javax.xml.transform  
 javax.xml.transform.dom javax.xml.transform.sax 
 javax.xml.transform.stream javax.xml.parsers
 -d ../build/docs/apidocs -windowtitle "Xalan-Java 2" 
 -doctitle "Xalan-Java 2" -bottom "Copyright © 
  2000 Apache XML Project. All Rights Reserved."
 
 
   |  
      
  |  
  
  |  |   | 
   Your feedback is more than welcome. Offers of help are even more so! Perhaps you would like to take on an active role in the ongoing development, testing, and documentation of Xalan-Java?  
Please email your comments, questions, suggestions, and offers to join the Xalan team to Xalan Development Mailing List. 
  |  
  
   |   |   |    |  Cumulative history of software changes |   |    |   |   |  
  |  |   | 
    The following sections list the changes in each release since Xalan-Java version 2.0.D01. 
        
       |   |   |    |  Changes for Xalan-Java 2.2.D2 |   |    |   |   |  
  |  |   | 
      This release includes the following changes: 
     
     
     The primary focus of the 2.2 Developer releases is incorporation of all our work over the past several months on the Document Table
      Model (DTM). 
As a result of the changes in *internal* api, you may encounter problems with extensions. We have done some bug fixing in support
for extensions since 2.2.D1.  John Gentilin is working on fixing the SQL library extension,which currently is broken. Please report 
any problems you find (see bugs). 
The DTM and related work provides faster performance and less accumulation of garbage... though it is an
ongoing battle.  Brief summary: 
- The DTM identifies nodes with 32-bit integer handles.
The DTM has many features, including direct character dispatch to SAX2,
native DTM iterators and "traversers", multiple document management, etc.
 
  
- Joe Kesselman's CoRoutine parsers, which are in a threaded SAX flavor
and in a Xerces parseMore() flavor (no threads).  These do away with the
"race" conditions that occured in the original code, and should make Xalan
much more robust.
 
  
- *Much* more robust XPath itteration.  The "waiting" iterators of old are
no more, and good riddance.  There is stil lots more we want to do with
this mechanism.  (There is something here called MatchIterators, but it's
not being used yet for various reasons.  We will be taking advantage of
these down the line.)
 
  
- A fair amount of XObject creation reduction.  You can now get boolean,
number, nodeset, and string values directly from an Expression, instead of
going through an XObject.
 
  
- XMLString, which allows us to work with string objects that don't wrap
Java's String object. These objects get their character data from an array or
Fast String Buffer.
 
  
- Serializers now only do internal buffering if they know they are writing
to a FileStream.
 
  
- The variable stack mechanism has been redisigned, so that it is no
longer so interpretive, and we believe it is much more robust.
 
  
-  Some small amount of stylesheet rewriting (but not yet redundent
expression elimination), in particular to reduce full RTF creation and
interpretation.
 
 
Xalan-Java implements two DTM performance features that you can control with the TransformerFactory
setAttribute()
method. See DTM performance settings 
      |  
  
       |   |   |    |  Changes for Xalan-Java 2.1.0 |   |    |   |   |  
  |  |   | 
      This release includes a number of bug fixes to Xalan-Java and TrAX. 
     We have also enhanced the ApplyXSLT servlet. It can now be set up to use a compiled Templates object to respond to multiple
     client transformation requests involving the same stylesheet. 
Core source code updates: - Committed by costin@apache.org on 03/16/2001
 Modified: java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xpath Expression.java XPath.java
 XPathContext.java
 java/src/org/apache/xpath/compiler Compiler.java
 XPathParser.java Committer's log entry: Renamed "assert()" to "assertion()".
 Assert can be a keyword, and brake the compilation.
 
  - Committed by mmidy@apache.org on 03/19/2001
 Modified: java/src/org/apache/xalan/transformer KeyWalker.java Committer's log entry: Throw an error message if the key name in a key function was not defined
 
  - Committed by jkesselm@apache.org on 03/20/2001
 Modified: java/src/org/apache/xml/utils FastStringBuffer.java Committer's log entry: Reworked "chunk growth" algorithm again. Growing mode not
 yet adequately tested, but fixed-size mode (which is what Xalan
 is currently using) is simpler code and shows improved performance.
 
  - Committed by curcuru@apache.org on 03/20/2001
 Added: java/src/org/apache/xalan/xslt EnvironmentCheck.java Committer's log entry: Utility class to check your JVM environment for common problems
 
  - Committed by curcuru@apache.org on 03/22/2001
 Modified: java/src/org/apache/xalan/xslt EnvironmentCheck.java Committer's log entry: Added more .jar sizes to jarVersions listing
 
  - Committed by jkesselm@apache.org on 03/22/2001
 Modified: java/src/org/apache/xml/utils FastStringBuffer.java Committer's log entry: We've reworked the algorithm again. The fixed-chunk-size mode (initial
 and max. chunk sizes equal) runs essentially unchanged, though with a
 few cycles less overhead. The variable-chunk-size mode now uses a
 recursive-encapsulation scheme, where the first chunk may itself be a
 FastStringBuffer whose total length equals one chunk; every so often
 we push the existing data down one level and restart with a larger
 chunk size. The new scheme has been stress-tested and is apparently
 working. At this writing, however, Xalan uses only the fixed-size
 mode (initial size equals max size), and no effort has been made to
 find the optimial values for the tuning parameters. It does appear
 likely that the best values will vary with usage patterns, but we hope
 to find a good compromise.
 I'll probably be putting this aside for a while to work on other things.
 If someone wants to experiment with varying the block sizes and
 how frequently they grow, and suggest good performance/memory
 tradeoff points, go for it!
 
  - Committed by jkesselm@apache.org on 03/22/2001
 Modified: java/src/org/apache/xml/utils FastStringBuffer.java Committer's log entry: Minor tweak to the javadoc.
 
  - Committed by jkesselm@apache.org on 03/23/2001
 Modified: java/src/org/apache/xml/utils FastStringBuffer.java Committer's log entry: reset() versus setLength(0).
 
  - Committed by sboag@apache.org on 03/26/2001
 Modified: java/src/org/apache/xalan/templates ElemForEach.java Committer's log entry: Fix for bug# 1116, getMatchedTemplate throws ClassCastException.
 Don't push template unless it is a xsl:template.
 
  - Committed by sboag@apache.org on 03/26/2001
 Modified: java/src/org/apache/xalan/templates OutputProperties.java Committer's log entry: Patches submitted by Patrick Moore <patrickm@rioport.com>
 on 03/15/2001 01:25 PM:
 This proposed change does a number of things:
 1. Problem: HTML output method does not uses XML output properties as
 default.
 In both org/apache/xalan/templates/output_html.properties and in the java
 doc for
 org/apache/xalan/templates/OutputProperties#getDefaultMethodProperties(Strin
 g) It specifically states that all OutputProperties use the
 output_xml.properties as a base. In the code this is not true for html. This
 is now changed to match the comments
 2. Problem: unclear IOException.
 If there was a problem loading the XML properties file. The wrapped
 exception now will say which file was trying to be loaded. If the file did
 not exist I was getting a very strange "Stream closed" IOException message.
 3. Problem: the streams were not closed after reading the property file.
 Fixed.
 4. Problem: the double-check locking mechanism does not work in Java (see
 bug #919)
 <http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-toolbox.html>
 5. QUESTION: now if there is a default properties (i.e.
 output_xml.properties has been loaded) but the expected properties file does
 not exist a error message will be printed to System.err and the processing
 will continuing using just the default properties (output_xml.properties) I
 felt that this is the best behavior.
 (comment by sboag: I think it's better to
 throw a runtime exception in this case.
 but we can discuss this over time. For now
 the patch was modified to do the runtime exception).
 
  - Committed by sboag@apache.org on 03/27/2001
 Modified: java/src/org/apache/xalan/processor XSLTSchema.java
 java/src/org/apache/xalan/stree SourceTreeHandler.java
 java/src/org/apache/xalan/templates ElemForEach.java
 ElemLiteralResult.java
 java/src/org/apache/xalan/transformer QueuedSAXEvent.java
 ResultTreeHandler.java TransformerImpl.java
 java/src/org/apache/xml/utils BoolStack.java
 java/src/org/apache/xpath XPathContext.java Committer's log entry: This check-in contains a couple things that overlapped on my
 system, so I'm checking them in together.
 1) Unfinished (in progress) implementation of TransformSnapshot mechanism,
 which will hopefully allow a result ContentHandler to take a snapshot
 at a given point, and the restart execution from that point at some
 later time. For tooling support.
 2) Check to make sure SourceTreeHandler isn't being entered twice,
 which is related to the cocoon bug from a couple of weeks ago. This
 will just help diagnose such a problem in the future.
 3) Removed the error stack trace print from postExceptionFromThread.
 4) Report exception in SourceTreeHandler#endDocument after
 the join, if we can determine that the posted exception won't be
 caught elsewhere.
 5) removed some catches that simply rethrew the exception
 (thanks to Patrick Moore <patrickm@rioport.com>).
 See my note on 3/27/2001 to Patrick for more info
 on the last two.
 
  - Committed by sboag@apache.org on 03/27/2001
 Added: java/src/org/apache/xalan/transformer TransformSnapshot.java
 TransformSnapshotImpl.java Committer's log entry: Unfinished (in progress) implementation of TransformSnapshot mechanism,
 which will hopefully allow a result ContentHandler to take a snapshot
 at a given point, and the restart execution from that point at some
 later time. For tooling support.on the last two.
 
  - Committed by mmidy@apache.org on 03/29/2001
 Modified: java/src/org/apache/xalan/processor
 ProcessorStylesheetElement.java
 ProcessorTemplateElem.java StylesheetHandler.java
 XSLTElementDef.java XSLTElementProcessor.java
 XSLTSchema.java Committer's log entry: Try to catch element order and required element errors during stylesheet 
object creation. This new code adds an order and a required field to 
XSLElementDef objects where it is applicable.
 
  - Committed by garyp@apache.org on 04/02/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Fix bugzilla bug 1170. If we're trying an xsl:apply-imports at the top level 
(ie there are no
 imported stylesheets), we need to indicate that there is no matching template 
and prevent and infinite recursion by using the built-in template.
 
  - Committed by garyp@apache.org on 04/02/2001
 Modified: java/src/org/apache/xalan/extensions MethodResolver.java Committer's log entry: Code cleanup submitted by Art Welch <art_w@EASTPOINT.COM>.
 
  - Committed by mmidy@apache.org on 04/06/2001
 Modified: java/src/org/apache/xml/utils TreeWalker.java Committer's log entry: Add locator support to TreeWalker
 
  - Committed by sboag@apache.org on 04/06/2001
 Modified: java/src/org/apache/xalan/transformer
 QueuedStartElement.java Committer's log entry: Small fix made for getCurrentNode.
 
  - Committed by sboag@apache.org on 04/06/2001
 Modified: java/src/org/apache/xml/utils TreeWalker.java Committer's log entry: Commented out extra call to getData()... this could be a big performance
 improvement for some stylesheets.
 
  - Committed by mmidy@apache.org on 04/09/2001
 Modified: java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java TransformerImpl.java Committer's log entry: Additional support for tooling. Allow tools to take a snapshot of context and 
restart execution at that point.
 
  - Committed by mmidy@apache.org on 04/10/2001
 Modified: java/src/org/apache/xalan/processor
 XSLTElementProcessor.java
 java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java TransformerImpl.java Committer's log entry: Misc stuff left out from previous check in
 
  - Committed by mmidy@apache.org on 04/11/2001
 Modified: java/src/org/apache/xpath/functions FuncCurrent.java Committer's log entry: Don't assume that the object returned by getSubContextList() is a 
PredicatedNodeTest object.
 
  - Committed by mmidy@apache.org on 04/11/2001
 Modified: java/src/org/apache/xalan/processor ProcessorInclude.java
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java
 java/src/org/apache/xml/utils TreeWalker.java Committer's log entry: Create new TreeWalker constructor that takes a systemId parameter. Change 
TreeWalker to change fields in the locator and not set it for each node.
 
  - Committed by curcuru@apache.org on 04/17/2001
 Modified: java/src/org/apache/xpath XPath.java Committer's log entry: Fix Bugzilla bug:
 PR: 1106
 Submitted by: elharo@metalab.unc.edu
 
  - Committed by curcuru@apache.org on 04/18/2001
 Modified: java/src/org/apache/xalan/lib/sql QueryParameter.java
 SQLExtensionError.java XConnection.java Committer's log entry: Minor Javadoc updates (add @author name, remove declared but unthrown @throws)
 
  - Committed by johng@apache.org on 04/18/2001
 Modified: java/src/org/apache/xalan/lib/sql Column.java
 ColumnAttribute.java ColumnData.java
 ColumnHeader.java Row.java RowSet.java
 StreamableNode.java XConnection.java
 XStatement.java Committer's log entry: Support for Streamable Mode- John Gentilin
 
  - Committed by garyp@apache.org on 04/24/2001
 Modified: java/src/org/apache/xpath/objects XObject.java Committer's log entry: Resolve bugzilla bug 1015 
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015>.
 Fix prevents null pointer exceptions when null non-XSLT arguments are
 passed to an extension function.
 
  - Committed by garyp@apache.org on 04/24/2001
 Modified: java/src/org/apache/xalan/extensions MethodResolver.java Committer's log entry: Resolve bugzilla bug 1015 
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015>.
 Fix prevents null pointer exceptions when null non-XSLT arguments are
 passed to an extension function.
 
  - Committed by mmidy@apache.org on 04/24/2001
 Modified: java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java Committer's log entry: Fix copy/paste error. Want to use TransformerFactoryImpl's class loader.
 
  - Committed by mmidy@apache.org on 04/24/2001
 Modified: java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java Committer's log entry: Keep a copy of current contextNodeList is there is one
 
  - Committed by curcuru@apache.org on 04/25/2001
 Modified: java/src/org/apache/xalan/xslt EnvironmentCheck.java Committer's log entry: Added checkDirForJars() which checks java.ext.dirs as well now
 
  - Committed by dleslie@apache.org on 04/26/2001
 Added: java/src/javax/xml/transform package.html
 java/src/javax/xml/transform/dom package.html
 java/src/javax/xml/transform/sax package.html
 java/src/javax/xml/transform/stream package.html Committer's log entry: Add package.html for each package in javax.xml.transform.
 
  - Committed by garyp@apache.org on 04/27/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Resolve bug 1496 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1496> 
where xsl:param statements were not being reset properly if the TransformerImpl 
was reused.
 
  - Committed by jkesselm@apache.org on 04/27/2001
 Modified: java/src/org/apache/xalan/stree DocImpl.java Committer's log entry: Fix for #1561
 
  - Committed by garyp@apache.org on 04/29/2001
 Modified: java/src/org/apache/xpath/functions FuncExtFunction.java Committer's log entry: Resolve bugzilla bug 1373 
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1373>.
 Added code to support return of Integer or Long by an external function.
 Code was contributed by Patrick Moore <patmoore@ieee.org>.
 
  - Committed by costin@apache.org on 05/03/2001
 Modified: java/src/javax/xml/transform/stream StreamResult.java
 StreamSource.java Committer's log entry: Small fix to avoid file:////path that may fail on some JDK.
 
  - Committed by dleslie@apache.org on 05/04/2001
 Modified: java/src/org/apache/xalan/lib/sql package.html Committer's log entry: Preliminary updates for John G's work.
 
  - Committed by mmidy@apache.org on 05/07/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Check for a null contextNodeList before returning its clone
 
  - Committed by mmidy@apache.org on 05/07/2001
 Modified: java/src/org/apache/xalan/stree StreeDOMBuilder.java Committer's log entry: Set the element's level correctly, before we process attributes.
 
  - Committed by garyp@apache.org on 05/08/2001
 Modified: java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java Committer's log entry: Resolve bugzilla 1648 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1648).
 TransformerIdentityImpl was improperly using an old LexicalHandler when 
invoked for a second transform.
 This bug only affects identity transforms with StreamResults.
 Many thanks to John Keyes <johnkeyes@yahoo.com> for reporting this bug.
 
  - Committed by dleslie@apache.org on 05/10/2001
 Modified: java/src/org/apache/xalan/processor XSLProcessorVersion.java Committer's log entry: Updated version number to 2.1.0
 
  - Committed by dleslie@apache.org on 05/10/2001
 Modified: java/src/org/apache/xalan/res XSLTInfo.properties Committer's log entry: Updated version number to 2.1.0
 
  - Committed by garyp@apache.org on 05/10/2001
 Modified: java/src/org/apache/xpath/functions FuncExtFunction.java Committer's log entry: Change submitted by Patrick Moore <patmoore@ieee.org> as part of bugzilla 
1373 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1373).
 Return value from extension function is now generalized so that all 
derivatives of Number are now properly handled.
 
  - Committed by mmidy@apache.org on 05/11/2001
 Modified: java/src/org/apache/xalan/processor XSLTSchema.java Committer's log entry: Set the correct order of xsl:include elements
 
  - Committed by johng@apache.org on 05/13/2001
 Modified: java/src/org/apache/xalan/lib/sql Column.java
 ColumnAttribute.java ColumnData.java
 ColumnHeader.java ConnectionPool.java
 DefaultConnectionPool.java ExtensionError.java
 PooledConnection.java QueryParameter.java Row.java
 RowSet.java SQLExtensionError.java
 StreamableNode.java XConnection.java
 XConnectionPoolManager.java XStatement.java
 package.html Committer's log entry: Updates Javadocs
 Submitted by:John Gentilin mailto://johnglinux@eyecatching.com
 
  - Committed by garyp@apache.org on 05/14/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: Correct typo introduced in revision 1.30 causing problems with transforms on 
Unix platforms.
 
  - Committed by garyp@apache.org on 05/14/2001
 Modified: java/src/org/apache/xalan/templates ElemChoose.java Committer's log entry: Correct bugzilla bug 1748 
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1748>.
 When evaluating xsl:when, the xsl:choose element was used to resolve 
namespace prefixes instead of
 the xsl:when element itself. This caused namespace prefixes defined on the 
xsl:when to be ignored.
 
  - Committed by costin@apache.org on 05/15/2001
 Modified: java/src/javax/xml/parsers DocumentBuilderFactory.java
 SAXParserFactory.java
 java/src/javax/xml/transform TransformerFactory.java Committer's log entry: Use the context class loader if available.
 The implementation is based on ExtensionHandler, and it's needed in order
 to work in certain environments ( like tomcat ).
 
  - Committed by costin@apache.org on 05/15/2001
 Modified: java/src/org/apache/xalan/extensions ExtensionHandler.java
 ExtensionHandlerGeneral.java Committer's log entry: Make getClassForName a public method. There are few other places in xalan
 where Class.forName is used, and this can create problems in some cases
 where the Thread.getContextClassLoader should be used.
 getClassForName uses introspection to call getContextClassLoader
 ( so it works in JDK1.1 ).
 In ExtensionHandlerGeneral, use the thread loader to find BSF ( it may be
 possible that xalan is installed in CLASSPATH, but BSF is in a webapp ).
 
  - Committed by costin@apache.org on 05/15/2001
 Modified: java/src/org/apache/xalan/processor
 CompilingStylesheetHandler.java
 java/src/org/apache/xalan/serialize SerializerFactory.java Committer's log entry: 2 more instances where Class.forName was used.
 Use the method in ExtensionHandler for consistency ( we could move it in
 org.apache.xml.utils, but for now it's easier to just use it as it is )
 
  - Committed by costin@apache.org on 05/15/2001
 Modified: java/src/org/apache/xalan/stree SourceTreeHandler.java
 java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: This is the "thread pooling hook".
 It slightly changes the API used to create and wait for the transform thread.
 Instead of using threadCreate() and Thread.start() that creates a new thread
 and thread.join() that waits for a thread to end, we now use a 
ThreadControler
 class that has the equivalent methods:
 - run( Runnable ) - executes a task in a thread. The default implementation
 is identical with what we had, using new Thread() and start()
 - waitTread() - waits for a task to end. The default impl. is identical with
 the previous code, using thread.join().
 Someone wanting to use a thread pool for xalan will have to extend
 the ThreadControler and override the 2 methods, then call setThreadController.
 Xalan itself doesn't implement a thread pool right now ( for mosts uses it's
 not even needed - if you just do few transforms for example ), instead
 a server that runs xalan could plug it's own thread pool.
 
  - Committed by Gary L Peskin <garyp@firstech.com> on 05/15/2001
 Committer's log entry: 
> Use the context class loader if available.
>
> The implementation is based on ExtensionHandler, and it's needed in order
> to work in certain environments ( like tomcat ).
>
>
 
  - Committed by dleslie@apache.org on 05/16/2001
 Modified: java/src/org/apache/xalan/lib/sql ExtensionError.java Committer's log entry: Fixed "conflict" in javadoc comments.
 
  - Committed by dleslie@apache.org on 05/16/2001
 Modified: java/src/org/apache/xalan/lib/sql package.html Committer's log entry: Editing pass.
 
  - Committed by tmiller@apache.org on 05/17/2001
 Modified: java/src/org/apache/xalan/xsltc TransletOutputHandler.java Committer's log entry: bug # 1406 fixed, omit xml header implemented
 
  - Committed by curcuru@apache.org on 05/17/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: Update Javadoc and remove commented out reference to properties file
 PR:Bugzilla1627
 
  - Committed by garyp@apache.org on 05/18/2001
 Modified: java/src/org/apache/xalan/transformer ResultTreeHandler.java Committer's log entry: Resolve bug 1330 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1330>.
 setContentHandler failed to also reset m_lexicalHandler if the ContentHandler
 was also a LexicalHandler. This caused the old LexicalHandler to be used 
which
 was pointing to a previous result tree.
 
  - Committed by garyp@apache.org on 05/18/2001
 Modified: java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java Committer's log entry: Resolve bug 1762 <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1762>.
 TransformerFactoryImpl's URIResolver was not propagated to created 
Transformers.
 Modified code to propagate.
 
  - Committed by curcuru@apache.org on 05/19/2001
 Modified: java/src/org/apache/xml/utils TreeWalker.java
 SystemIDResolver.java Committer's log entry: Catch SecurityException whenever accessing System.getProperty("user.dir");
 minor javadoc update
 
  - Committed by sboag@apache.org on 05/21/2001
 Modified: java/src/org/apache/xalan/templates ElemCopy.java
 ElemValueOf.java
 java/src/org/apache/xalan/transformer TreeWalker2Result.java
 java/src/org/apache/xpath/functions FuncLast.java Committer's log entry: Fix for bugs reported by the Eclipse folks for TransformState, where
 some operations (xsl:value-of, xsl-copy) were not pushing the
 current node on the current node stack. Addresses
 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1524.
 
  - Committed by curcuru@apache.org on 05/21/2001
 Modified: java/src/org/apache/xalan/templates OutputProperties.java Committer's log entry: Catch SecurityException as needed
 PR: Bugzilla1258
 
  - Committed by garyp@apache.org on 05/21/2001
 Modified: java/src/org/apache/xalan/templates OutputProperties.java Committer's log entry: Fix to the following bug reported by dims@yahoo.com:
 loadPropertiesFile method in org\apache\xalan\templates\OutputProperties.java 
does not fall back
 to the Thread Context Class Loader to load properties files like 
output_xml.properties etc. This
 is causing problems in ServletExec_3_1+C2.
 
  - Committed by garyp@apache.org on 05/21/2001
 Modified: java/src/org/apache/xalan/templates OutputProperties.java Committer's log entry: Correct implementation of ContextClassLoader to support case where properties 
file is to be loaded by a different ClassLoader than the OutputProperties 
class. Thanks to Davanum Srinivas <dims@yahoo.com> for this code and for 
reporting this bug.
 loadPropertiesFile should eventually be moved into a thread-specific class.
 
  - Committed by garyp@apache.org on 05/21/2001
 Modified: java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/serialize CharInfo.java
 java/src/org/apache/xpath/functions FuncSystemProperty.java Committer's log entry: Modify getResourceAsStream calls to use the contextClassLoader, if available.
 This is a temporary fix until we can centralize this function.
 
  
   | This release includes no updates of the compatibility source code. |   
      |  
  
  |   |   |    |  Changes for Xalan-Java 2.0.1 |   |    |   |   |  
  |  |   | 
 This release includes a number of bug fixes to the Xalan-Java and TrAX core and Xalan-Java 1 compability API. We have also 
  - Entered all known Xalan-Java 2 bugs in the Apache Bugzilla database
 
  
  - Added support for using custom URIResolver, EntityResolver, and ContentHandler implementations with the command-line utility
 
   
  - Upgraded from Ant 1.2 to Ant 1.3 for our builds (the new ant.jar is in the bin directory).
 
 
Core source code updates: 
- Committed by sboag@apache.org on 02/06/2001
 Modified: java/src/org/apache/xpath/axes ChildWalkerMultiStep.java Committer's log entry: Fix for bug reported by "Chris P. McCabe" <chris_mccabe@choicehotels.com>
 02/06/2001 06:55 PM.
 Defensive fix for if the last used walker is null, then don't check to
 see if it is a fast walker! Without this, a null pointer exception is
 very possible.
 
  - Committed by sboag@apache.org on 02/06/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Fixes for exceptions being thrown that weren't being passed through
 the error listener.
 
  - Committed by sboag@apache.org on 02/07/2001
 Modified: java/src/org/apache/xpath/axes FollowingWalker.java Committer's log entry: Fix for bug reported by Dave Haffner <dave.haffner@xmls.com>
 02/06/2001 04:03 AM
 In parentNode(), don't screen out nextAncestor, since the parent
 is never actually returned. This sets things up correctly for firstChild
 and nextSibling.
 
  - Committed by sboag@apache.org on 02/07/2001
 Modified: java/src/org/apache/xpath/axes PrecedingWalker.java Committer's log entry: Fix for bug reported by Dave Haffner <dave.haffner@xmls.com>
 02/06/2001 04:03 AM
 In nextSibling(), don't return null if isAncestorOfRootContext, instead
 do next.getFirstChild().
 
  - Committed by sboag@apache.org on 02/07/2001
 Modified: java/src/org/apache/xpath SourceTreeManager.java Committer's log entry: Fix for bug reported by anders.domeij@uc.se
 02/07/2001 09:35 AM
 removed extra bogus TransformerException decl in resolveURI
 
  - Committed by sboag@apache.org on 02/08/2001
 Modified: java/src/org/apache/xalan/stree SourceTreeHandler.java Committer's log entry: Fix bug reported by Jason Harrop <jharrop@bigpond.net.au>
 02/07/2001 08:12 PM
 Don't process comment or whitespace events if inside a startDTD/endDTD
 event.
 
  - Committed by sboag@apache.org on 02/10/2001
 Modified: java/src/org/apache/xpath/axes WalkerFactory.java Committer's log entry: In indirect response to bug posted by "Thee Boon Hoo" <theebh@newstakes.com>
 02/07/2001 09:37 PM
 "//table[1]" patterns would give one node
 when they should have given 2, when applied to Boon Hoo's
 source.
 "//table[1]" is equivelent to
 "/descendant-or-self::node()/table[1]",
 and so must return the first table child
 of each table-inst element.
 An optimization was optimizing this to
 "/descendant-or-self::table, which is
 fine as long as indexing isn't used. Since
 we can not tell until runtime if indexing
 is being used, we have to turn of this
 optimization for all predicated "//foo[xx]"
 patterns.
 
  - Committed by mmidy@apache.org on 02/12/2001
 Modified: java/src/org/apache/xalan/processor StylesheetPIHandler.java
 TransformerFactoryImpl.java Committer's log entry: Patch for Dmitri IIyin to use the specified URIResolver.
 
  - Committed by mmidy@apache.org on 02/12/2001
 Modified: java/src/org/apache/xalan/templates ElemNumber.java Committer's log entry: Number Expression should be evaluated then rounded up.
 
  - Committed by sboag@apache.org on 02/13/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: Create a document fragment for the output node, for -flavor d2d.
 
  - Committed by sboag@apache.org on 02/13/2001
 Modified: java/src/org/apache/xpath/compiler Compiler.java Committer's log entry: Better error message when quo is used.
 
  - Committed by mmidy@apache.org on 02/13/2001
 Modified: java/src/org/apache/xalan/templates ElemCallTemplate.java
 ElemChoose.java ElemCopy.java ElemFallback.java
 ElemIf.java ElemLiteralResult.java
 ElemTemplate.java
 java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Remove extra method/call to TransformerImpl.executeChildTemplates()
 
  - Committed by sboag@apache.org on 02/13/2001
 Modified: java/src/org/apache/xpath/patterns NodeTest.java Committer's log entry: Return an empty string instead of null from getLocalName() when the
 nodetest does not have a name. Encountered with the SQL extension,
 in response to bug reported by "Michael Kay" <mhkay@iclway.co.uk>,
 02/08/2001 08:57 AM.
 
  - Committed by sboag@apache.org on 02/13/2001
 Modified: java/src/org/apache/xalan/lib/sql ColumnData.java Committer's log entry: In getData() return an empty string instead of null if there is
 no data to be obtained.
 In response to bug reported by "Michael Kay" <mhkay@iclway.co.uk>,
 02/08/2001 08:57 AM.
 
  - Committed by garyp@apache.org on 02/19/2001
 Modified: java/src/org/apache/xalan/extensions MethodResolver.java Committer's log entry: Correct ConversionInfo array for Node-Set and RTF. Remove DocumentFragment 
from RTF and replace with NodeList. Remove duplicate Boolean from both. Fix 
Boolean conversion to make java.lang.Boolean higher than string.
 
  - Committed by sboag@apache.org on 02/19/2001
 Modified: java/src/org/apache/xalan/lib/sql ColumnHeader.java
 RowSet.java XStatement.java Committer's log entry: Use null nodetest to mean the same as "node()". This fixes a bug reported
 by "Voytenko, Dimitry" <DVoytenko@SECTORBASE.COM>
 where <xsl:copy-of select="sql:query(...)"/>
 crashes with NullPointerException, i.e.
 there are cases where we really don't want
 to set the NodeTest.
 
  - Committed by mmidy@apache.org on 02/20/2001
 Modified: java/src/org/apache/xpath/compiler XPathParser.java Committer's log entry: Check for null token before checking if it is a letter
 
  - Committed by sboag@apache.org on 02/20/2001
 Modified: java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java Committer's log entry: Fix made for bug reported by "Glencross, Christian" 
<Christian.Glencross@gs.com>
 on 02/16/2001 10:18 AM.
 Xerces 1.2.3 SAX parser calls
 handler.setDocumentLocator() before handler.startDocument().
 TransformerIdentityImpl.m_resultContentHandler isn't initialised until
 TransformerIdentityImpl.startDocument() is called.
 Added lazy construction of result handler
 in setDocumentLocator, in addition to
 startDocument.
 
  - Committed by garyp@apache.org on 02/21/2001
 Modified: java/src/org/apache/xalan/lib Extensions.java Committer's log entry: Correct implementation of string value of a node.
 
  - Committed by dleslie@apache.org on 02/21/2001
 Modified: java/src/org/apache/xalan/lib/sql Column.java
 ColumnAttribute.java ColumnData.java
 ColumnHeader.java Row.java RowSet.java
 StreamableNode.java XConnection.java
 XStatement.java package.html Committer's log entry: Added experimental usage metatag to all classes in this package,
 and an explanatory note to package.html.
 
  - Committed by sboag@apache.org on 02/22/2001
 Modified: java/src/org/apache/xalan/stree ElementImpl.java Committer's log entry: Bug fix attributed to Norman Walsh <ndw@nwalsh.com>, on
 02/20/2001 09:50 AM. if the attribute 'name' doesn't occur in the AttList, 
the
 result of getIndex(name) is -1, but
 getChildAttribute() would incorrectly
 return the first attribute. Fix returns
 null if index < 0.
 
  - Committed by mmidy@apache.org on 02/22/2001
 Modified: java/src/org/apache/xalan/serialize SerializerToXML.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java Committer's log entry: Implement DeclHandler for identity transforms
 
  - Committed by sboag@apache.org on 02/22/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Fix for bug originally reported by Daryl Beattie <DarylB@screamingmedia.com>
 on 02/14/2001 04:16 PM. A hang was occuring inside the use
 of a Result Tree Fragment. When the result tree fragement was
 being created, the Redirect extension was being called, which
 called createResultContentHandler which set the ContentHandler
 in the Transformer, but not in the ResultTreeHandler. Then, Redirect
 called Transformer#executeChildTemplates(
 ElemTemplateElement elem, Node sourceNode, QName mode, 
ContentHandler handler)
 which saves the reference to the original content handler in
 the transformer, and then sets the new one by calling setContentHandler,
 which sets the ContentHandler in the ResultTreeHandler as well
 as the Transformer. When it tried to restore the old ContentHandler,
 it restored the value in the ResultTreeHandler to a Serializer, instead
 of the correct ContentHandler. When transformToRTF then called
 endDocument on it's resultTreeFragment, the event was sent
 to the Serializer instead of the SourceTreeHandler, and thus the
 isComplete flag was not set, and thus the hang. (whew!)
 The fix is in executeChildTemplates save the value of the
 resultTreeHandler's contentHandler as well as Transformer's
 content handler, and restore them both. A more architectual fix
 could be made, but not without high risk, so I think this is the best
 and safest way to fix it.
 
  - Committed by dleslie@apache.org on 02/23/2001
 Modified: java/src/org/apache/xalan/res XSLTInfo.properties Committer's log entry: Changed version to 2.0.1
 
  - Committed by dleslie@apache.org on 02/23/2001
 Modified: java/src/org/apache/xalan/processor XSLProcessorVersion.java Committer's log entry: Changed version to 2.0.1
 
  - Committed by curcuru@apache.org on 02/28/2001
 Modified: java/src/org/apache/xalan/res XSLTErrorResources.java Committer's log entry: Update text of error messages
 Submitted by: Andreas Zehnpfund
 
  - Committed by curcuru@apache.org on 02/28/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: Update printArgOptions() with better text and to better reflect actual
 options that are currently supported; catch missing -IN argument
 
  - Committed by jkesselm@apache.org on 03/05/2001
 Modified: java/src/org/apache/xalan/client XSLTProcessorApplet.java
 java/src/org/apache/xalan/processor StylesheetHandler.java
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/stree DocImpl.java
 StreeDOMBuilder.java TextImpl.java
 java/src/org/apache/xalan/templates OutputProperties.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/utils FastStringBuffer.java
 java/src/trax trax.properties Committer's log entry: New approach to FastStringBuffer, and changes needed to support it.
 We still need to do some serious work on both the initial values of the
 tuning parameters and the heuristics driving the "chunk growth" algorithms.
 Currently set for fixed-sized chunks of 8Kch in main tree, .5Kch in RTF.
 
  - Committed by sboag@apache.org on 03/06/2001
 Modified: java/src/org/apache/xalan/templates ElemElement.java
 ElemForEach.java ElemLiteralResult.java
 java/src/org/apache/xalan/transformer
 ClonerToResultTree.java QueuedSAXEvent.java
 QueuedStartDocument.java QueuedStartElement.java
 ResultTreeHandler.java TransformerImpl.java
 TreeWalker2Result.java Committer's log entry: Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=741.
 1) ResultTreeHandler now implements the TransformState interface.
 2) Queued state such as the current node and the current template is stored 
as part of QueuedStartElement. Storage will only occur if the ContentHandler 
implements TransformClient.
 3) When state is requested (for instance TransformState#getCurrentElement()), 
if the queued element is null or not pending (for instance, in a characters 
event), it will get the state from the transformer, otherwise it will get the 
state from the queued element.
 Other fixes were attempted for this problem, including trying to
 get rid of queueing altogether, and flushing a bit earlier before
 the state was pushed on the various stacks, but both of
 these had show-stopping issues (see discussions
 on xalan-dev).
 Note that for the moment the ContextNodeList is node
 cloned as it needs to be in order for
 TransformState#getContextNodeList.
 
  - Committed by garyp@apache.org on 03/06/2001
 Modified: java/src/org/apache/xalan/templates ElemParam.java
 java/src/org/apache/xpath Arg.java VariableStack.java Committer's log entry: The field Arg.isParamVar was attempting to serve two functions: to indicate 
variable Frame entries which are not currently activated and to indicate Frames 
containing parameters passed with xsl:with-param. When processing was finished 
for a node in a node-set, the isParamVar flag was turned on to indicate the 
Frame slot was available. Unfortunately, this also indicated that the item was 
passed as a parameter which it wasn't. This fix changes isParamVar into to 
fields, isAvailable which indicates that the slot is available and 
isFromWithParam indicating the Frame slot came from an xsl:with-param or a 
top-level parameter passed in via the tranformerImpl.setParameter() API.
 I have tested this change against the conformance suite and had no 
regression. I've also submitted a test case which fails on the existing 
codebase but works okay after this fix.
 It is possible that I've missed something with regard to the API setParameter 
calls but we can fix those if problems are reported.
 
  - Committed by garyp@apache.org on 03/07/2001
 Modified: java/src/org/apache/xml/utils FastStringBuffer.java Committer's log entry: Correct operation when length of content to be appended is zero.
 
  - Committed by mmidy@apache.org on 03/07/2001
 Modified: java/src/org/apache/xalan/serialize SerializerToXML.java Committer's log entry: Fix closing out doctype declaration
 
  - Committed by mmidy@apache.org on 03/08/2001
 Modified: java/src/org/apache/xml/utils SystemIDResolver.java Committer's log entry: Change SystemIdResolver to default to user.dir if the base URI is null
 
  - Committed by garyp@apache.org on 03/09/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java Committer's log entry: Parameters set with setParameter were available to stylesheet as variable 
references ($myParam) even though there was no xsl:param element to receive it.
 
  - Committed by mmidy@apache.org on 03/09/2001
 Modified: java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java Committer's log entry: Check if there is a DeclHandler before calling it.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xml/utils WrappedRuntimeException.java Committer's log entry: Patch attributed to Patrick Moore <patrickm@rioport.com> on 03/09/2001.
 Adds another constructor to pass in the error message.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/templates ElemAttribute.java
 ElemElement.java Committer's log entry: Checkin addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=923.
 elemAttribute now derives from elemElement so the basic name resolution
 code can be shared. Breaks attribset24 test, but I think the newer
 behavior is better. New virtual methods overloaded by elemAttribute are
 constructNode, resolvePrefix, and validateNodeName. Also, in the
 elemAttribute#execute method, checks are made to make sure an
 element is pending.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xml/utils SystemIDResolver.java Committer's log entry: Added getAbsoluteURI(String url), and merge
 with Myriam's changes.
 Part of fix for problem found when
 investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java Committer's log entry: Call getAbsoluteURI(String url) for the source URL.
 Fix for problem found when
 investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
 This tries to force us always having an absolute URL in the processing
 stack as the base URL, which should be OK, I hope.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/transformer TransformerImpl.java Committer's log entry: Call getAbsoluteURI(String url) for the source URL.
 Fix for problem found when
 investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
 This tries to force us always having an absolute URL in the processing
 stack as the base URL, which should be OK, I hope.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/transformer QueuedEvents.java
 QueuedStartElement.java ResultTreeHandler.java Committer's log entry: The user for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=741 reported
 problems on testing, so these changes are a re-fix. He tested and
 everything seems OK now. There actually may be a slight performance
 improvement involved here.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/serialize SerializerToHTML.java Committer's log entry: Applied patches from dmitri.ilyin@memiq.com (Dmitri Ilyin)
 from http://nagoya.apache.org/bugzilla/show_bug.cgi?id=705.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xpath XPathAPI.java Committer's log entry: Applied patch submitted by nboyd@atg.com (Norris Boyd)
 at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=702.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/serialize Encodings.java Committer's log entry: Applied patch submitted by havardw@underdusken.no (H嶡rd Wigtil).
 Also added "XXX-X" variants for all "XXX_X" java encoding names.
 I'm not totally confident that this is the right thing to do, but I can't
 see that it will hurt, except to make the table a bit larger. I
 would prefer to be safe and make sure we handle the encoding.
 See my comments in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=718.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/templates ElemTemplateElement.java
 StylesheetRoot.java Committer's log entry: Minor changes to better bottleneck throwing of Runtime exceptions
 during processing.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java Committer's log entry: Catch all exceptions thrown when processing stylesheet, and send
 them to the error listener. There's probably some danger of having
 the same error sent to the error listener multiple times, but better too
 many reports, than none, I guess.
 This addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/lib/sql XConnection.java
 XStatement.java Added: java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java ExtensionError.java
 PooledConnection.java QueryParameter.java
 SQLExtensionError.java XConnectionPoolManager.java Committer's log entry: These are John Gentilin <johnglinux@eyecatching.com>
 patches for connection pooling and parameterized
 queries. These should be considered to be unstable
 right now, as we are still working on some things.
 
  - Committed by sboag@apache.org on 03/11/2001
 Modified: java/src/org/apache/xalan/processor ProcessorInclude.java
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/serialize SerializerToXML.java
 java/src/org/apache/xalan/stree StreeDOMHelper.java
 java/src/org/apache/xalan/transformer ResultTreeHandler.java
 TransformerIdentityImpl.java TreeWalker2Result.java
 java/src/org/apache/xml/utils AttList.java TreeWalker.java
 java/src/org/apache/xpath DOM2Helper.java XPathContext.java Committer's log entry: The DOM2Helper#isNodeAfter(Node node1, Node node2) method
 has been fixed so that it no longer does the try/catch thing if one
 of the nodes doesn't implement DOMOrder, but instead does an
 instanceof test. In StreeDOMHelper, it overloads this method and
 *does* do the try/catch business, since almost always both nodes
 will implement DOMOrder in this case, and this will be faster than
 an instanceof test. Also, in various classes, I did some stuff to try
 and make sure that a DOM2Helper wasn't being created and used
 when a StreeDOMHelper is needed.
 This addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=800
 and should give a good performance fix for foreign DOM processing.
 
  - Committed by sboag@apache.org on 03/12/2001
 Modified: java/src/org/apache/xpath/patterns NodeTest.java Committer's log entry: Xerces at some point decided to use "" instead
 of null for null namespaces. There has been a
 discussion between Gary Peskin in
 Joe Kessleman on xalan-dev about this,
 but I hadn't been fully keeping up the the
 thread that well, and missed it's relation to
 this problem. I include some of the discussion
 at the end of this note. I made Xalan be able to
 compare a "" namespace to null for now, until
 we get this resolved.
 The gist of the discussion on xalan-dev regarding this is:
 >>1. Declare the Xerces-J support of schemas to have a bug and ask that
 >>Xerces be corrected to always use a null namespace URI to indicate that
 >>there is no default namespace. Even if the Xerces people change this
 >>behavior, is this correct?
 >
 > Yes. If your description of the problem is accurate (you should probably
 > submit a more detailed case so it can be reproduced in the lab), this is a
 > parser/DOM-builder bug.
 
  - Committed by costin@apache.org on 03/12/2001
 Modified: java/src/org/apache/xalan/lib/sql ExtensionError.java Committer's log entry: Removed ( commented out ) dump() method and the imports in ExtensionError.
 So far the method doesn't seem to be used ( no warning in the compile ).
 The problem is that this method is breaking the build with crimson ( since
 it uses xerces-specific classes ). It is possible to implement it on top
 of the serialization classes that are part of xalan - if someone needs the
 method I'll try to port it.
 
  - Committed by sboag@apache.org on 03/13/2001
 Modified: java/src/org/apache/xml/utils TreeWalker.java Committer's log entry: Added back in the TreeWalker(ContentHandler contentHandler)
 constructor, because I'm worried I'll break more dependent code.
 
  - Committed by mmidy@apache.org on 03/13/2001
 Modified: java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/xslt Process.java Committer's log entry: Implement new arguments for the command line interface: URIResolver, 
EntityResolver and ContentHandler
 
  - Committed by mmidy@apache.org on 03/13/2001
 Modified: java/src/org/apache/xalan/templates FuncFormatNumb.java Committer's log entry: Fix error message to say that 2 or 3 arguments are required.
 
  - Committed by mmidy@apache.org on 03/13/2001
 Modified: java/src/org/apache/xalan/processor ProcessorLRE.java
 java/src/org/apache/xalan/res XSLTErrorResources.java Committer's log entry: Better error message for missing or incorrect XSLT namespace declaration in a 
stylesheet
 
  - Committed by garyp@apache.org on 03/13/2001
 Modified: java/src/org/apache/xalan/lib Redirect.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java Committer's log entry: Remember the Result that was used to trigger the transform. Access that 
result from the Redirect extension to make file references in Redirect relative 
to the original result URI.
 If this is not available, references are relative to the source URI.
 
  - Committed by sboag@apache.org on 03/14/2001
 Modified: java/src/org/apache/xpath VariableStack.java Committer's log entry: Added protection for null pointer exception that I discovered when
 running some Cocoon tests. Since I've never seen this before,
 I assume this is related to the changes that Gary made, but am
 unsure as it's 4:00 in the morning and I'm too tired to look into it deeply.
 
  - Committed by curcuru@apache.org on 03/14/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: Remove check for missing -IN arg; there are a number of use
 cases for calling Process.main without an XML document
 
  - Committed by costin@apache.org on 03/14/2001
 Modified: java/src/org/apache/xalan/xslt Process.java Committer's log entry: A (last ? ) place where XMLReaderFactory was used without
 trying jaxp first. I used the same code that is used in all other
 places in xalan.
 With this change, the parser defined in XSLTInfo.properties will be used
 only if jaxp is not available.
 
  - Committed by dleslie@apache.org on 03/14/2001
 Modified: java/src/org/apache/xml/utils StringVector.java Committer's log entry: Added missing @serial Javadoc tags.
 
  - Committed by sboag@apache.org on 03/15/2001
 Modified: java/src/org/apache/xalan/lib/sql ConnectionPool.java
                        DefaultConnectionPool.java ExtensionError.java
                        SQLExtensionError.java XConnection.java
                        XConnectionPoolManager.java XStatement.java Committer's log entry: Update from John Gentilin <johnglinux@eyecatching.com> to
  fix connection cleanup.
 
   Compatibility source code updates: - Committed by mmidy@apache.org on 02/02/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTInputSource.java
 XSLTResultTarget.java Committer's log entry: Implement some more methods for compatibility
 
  - Committed by dleslie@apache.org on 02/02/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTInputSource.java Committer's log entry: Fixed javadoc for api that was just added back.
 
  - Committed by dleslie@apache.org on 02/02/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTResultTarget.java Committer's log entry: Fixed javadoc for api that was just added back.
 
  - Committed by mmidy@apache.org on 02/02/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java Committer's log entry: Fix problem with calling the processor with a liaison
 
  - Committed by mmidy@apache.org on 02/02/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java Committer's log entry: Fix problem where source file was being parsed more than once and if using an 
input stream, we would get a read error
 
  - Committed by mmidy@apache.org on 02/12/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java Committer's log entry: Set system id in stylesheet handler
 
  - Committed by mmidy@apache.org on 02/14/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTInputSource.java Committer's log entry: Call local setSystemId.
 
  - Committed by mmidy@apache.org on 02/15/2001
 Modified: java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java Committer's log entry: Fix problem with processing an input source created from a reader with no 
systemId
 Fix problem with reading an input source file twice if it has a PI
 
  - Committed by mmidy@apache.org on 02/22/2001
 Modified: java/compat_src/org/apache/xalan/xslt StylesheetRoot.java Committer's log entry: Add getOutputMethod API.
 
  - Committed by dleslie@apache.org on 03/07/2001
 Modified: java/compat_src/org/apache/xalan/xpath/xml
 XMLParserLiaisonDefault.java Committer's log entry: Put in Apache copyright.
 
  - Committed by sboag@apache.org on 03/13/2001
 Modified: java/compat_src/org/apache/xalan/xpath/xml TreeWalker.java
 java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java Committer's log entry: Made changes for change to API for XalanJ2 TreeWalker, which
 now requires that the DOM helper be created by the caller. 
  
 |  
  
  |   |   |    |  Changes for Xalan-Java version 2.0.0 |   |    |   |   |  
  |  |   | 
 Release 2.0 includes several bug fixes to the Xalan-Java and TrAX core and to the Xalan-Java 1 compatibility API. We also updated bsf.jar to the Bean Scripting Framework (BSF) release candidate 2.2, which fixes a bug running JPython extensions. 
Core bug fixes: 
  - A threading problem showed up when using multiple processors. We fixed it by using a separate XPathContext object to do whitespace node
   matches (xsl:strip-space).
 
  
  - Fixed a bug running Norm Walsh's DocBook stylesheets by not setting the variable stack position if the FilterExprWalker is not owned by a
  top-level NodeIterator.
 
  
  - Fixed a problem with null namespace being passed from xsl:element. This bug also surfaced while processing DocBook
   stylesheets.
 
  
  - In the interest of stability, we now treat "unknown error in XPath" as a fatal error.
 
  
  - Added support in stylesheet processing instructions for "text/xml" and "application/xml+xslt" mime types.
 
  
  - Fixed tokenizing of stylesheet processing instructions to allow parameters to be passed to server in href attributes.
 
  
  - Fixed a bug passing Transformer creation error messages to ErrorListener when an ErrorListener has been set on
   TransformerFactory.
 
  
  - When using an Exception to instantiate a FactoryConfigurationError (extends Error), we now propagate the Exception message to 
  super().
 
  
  - Added defensive code to ElemTemplateElement for handling a null URI.
 
  
  - When using an Exception to instantiate a TransformerException (extends Exception), we now propagate the Exception message to super() 
  rather than a generic message.
 
  
  - Fixed a bug (the generation of an unwanted entity reference) performing the identity transformation 
  (see Serializing output) with an XML document containing a DOCTYPE
   declaration.
 
  
   - Message manager modified so that the SourceLocator must always be passed in,
  which will make a major difference in getting line number information.
 
   
  - xsl:element's handling of namespace attribute and prefix in
  name attribute changed so that it no longer manufactures prefixes...
  it always tries its best to match the prefix entered.
 
    
  - Bug fixed with namespace contexts in the stylesheet processor.
  The bug could cause <a xmlns:a="x"><b> to produce <a xmlns:a="x"><b xmlns:a="x">.
 
    
  - Modified processing of xsl:message to enhance it as a debugging aid. Line numbers are now output with each
  message. If the terminate attribute is true (the default is false) the message is sent to the console, and an exception is thrown with the
  message "Stylesheet directed termination".
 
  
  - In TransformerException, check that the cause != null when checking for a contained exception.
 
  
  - Fixed a problem validating non-namespaced attributes and a problem allowing non-namespaced attributes to be children of the
   stylesheet element.
 
  
   - Fixed checking of number of arguments in document() function.
 
  
   - Fixed problem with mutation of templates at run time. Templates resolution now takes place during the compose() method.
 
  
   - Fixed some minor threading issues in org.apache.xalan.stree (Child, Parent, ElementImpl, SourceTreeHandler).
 
  
   - Synchronized TrAX API functions subject to mutation to prevent mutation during a transformation.
 
  
   - Fixed bug reported by Jano Elovirta: substring() was returning an error if the start index is larger than the string.
 
     
   - Set StringKey.toString() to return the underlying String (m_str), thus avoiding a potential symmetry problem with the equals() method
   reported by Ito Kazumitsu.
 
  
   - In response to note from Ito Kazumitsu, changed Java encoding name "EUCJIS" in FormatterToXML to "EUC_JP".
 
  
   - When Xalan creates a FileOutputStream, it now closes the stream before exiting.
 
  
   - Fixed handling of an exception that can be thrown while building a DOM.
 
  
   - Fixed a problem reported by Dimitry Voytenko serializing compiled stylesheets.
 
  
   - For support of applets, modified TransformerFactory System.getProperty() calls to catch SecurityExceptions.
 
  
   - Fixed a bug reported by Krishna Mohan Meduri setting output properties.
 
  
   - Fixed error recovery when xsl:element encounters a bad name or unresolvable prefix.
 
  
   - Added AbstractMethodError handling to existing NoSuchMethodError handling as a fallback to the XMLReaderFactory for XML parsers that do
       not implement the JAXP parsers interface for creating an XMLReader
 
  
   - Fixed bug with cloned iterators reported by Tim Sean.
 
  
   - Fixed null pointer exception that could occur with getValue("xxx").
 
  
   - Fixed bug reported by Tim Sean handling the xml:space attribute.
 
 
Bug fixes in the Xalan-Java 1 compatibility API: 
  - Fixed ProblemListener (for processing error messages) to derive from Xalan-Java 2 ErrorHandler.
 
  
  - Fixed evaluation of stylesheet string parameters to conform to Xalan-Java 1 behavior (expressions for Xalan-Java 1 vs. String objects 
  for Xalan-Java 2).
 
      
  - Added XPathSupport and XPathSupportDefault, and fixed the derivation of XObject sub-types (XString, etc.).
 
  
  - Fixed bug with XSLTProcessor process(xmlIn, null, out) method so that it uses the StylesheetRoot (if one exists) that has been created
   with the processStylesheet() method.
 
 
For a list of tasks in the Xalan-Java 2 To-Do list that have been completed, see Tasks completed. 
 |  
  
 
 
  |   |   |    |  Changes for Xalan-Java version 2.0.D05 |   |    |   |   |  
  |  |   | 
 All of the bugs reported in Xalan-Java 2.0.D01 have been fixed. The remainder of this section discusses two changes that we believe are of particular importance: 
TrAX 
The Transformation API for XML (TrAX) that Xalan-Java 2 implements has undergone substantial revisions since the release of Xalan-Java 2.0.D01. TrAX has joined the Java API for XML Parsing (JAXP) as part of the Sun® Java Specification Request 63. Accordingly, the TrAX package names have changed. The conceptual organization has also changed somewhat: The primary transformation interfaces are defined in javax.xml.transform, with concrete classes for managing stream input/output, SAX parsers and ContentHandler, and DOM parsers and DOM trees in javax.xml.transform.stream, javax.xml.transform.sax, and javax.xml.transform.dom. For more information, see TRaX (Transformation API for XML), and review Usage Patterns. 
Output properties 
The handling of xsl:output properties has changed: org.apache.xalan.serialize.OutputFormat and apache.xalan.templates.OutputFormatExtended were removed and replaced with org.apache.xalan.templates.OutputProperties. The SerializerFactory getSerializer() method now takes Properties rather than a String indicating the output method. You can replace getSerializer("xml"), for example, with getSerializer(OutputProperties.getDefaultMethodProperties("xml")). 
HTML, XML, and text xsl:output properties are specified in property files in org.apache.xalan.templates: output_html.properties, output_xml.properties, and output_text.properties. 
You can start using the output properties defined in these files in your stylesheets. For example, you can turn URL escaping off in HTML output with
 {http\u003a//xml.apache.org/xslt}use-url-escaping=no 
and you can control indenting with 
{http\u003a//xml.apache.org/xslt}indent-amount=n 
  | The colon after the "http" protocol must be escaped. |   
Character-to-entity mapping is specified in org.apache.xalan.serialize: HTMLEntities.res and XMLEntities.res. You can override entity ref 
mapping from a stylesheet. For example: 
  |   |   |    | <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:xalan="http://xml.apache.org/xslt" version="1.0">
  <xsl:output xalan:entities="myentities.ent"/>
  <xsl:template match="/">
    <out>}</out>
  </xsl:template>
</xsl:stylesheet> |   |    |   |   |  
  
=== myentities.ent === 
  |   |   |    | quot 34
amp 38
lt 60
gt 62
lala 125  |   |    |   |   |  
  
The output is: 
  |   |   |    | <?xml version="1.0" encoding="UTF-8"?>
<out>&lala;</out>  |   |    |   |   |  
  
See also Setting output properties in your stylesheets. 
 |  
  
  |  
  
 |