<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>History of software changes</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG alt="logo" border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG alt="line" border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG alt="right" border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/history-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG alt="bottom" border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG alt="join" border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
  
  <A href="http://xalan.apache.org/index.html" onMouseOut="rolloverOff('side-ext-4');" onMouseOver="rolloverOn('side-ext-4');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-4" onLoad="rolloverLoad('side-ext-4','graphics/ext-4-label-2.jpg','graphics/ext-4-label-3.jpg');" src="graphics/ext-4-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="index.html" onMouseOut="rolloverOff('side-index');" onMouseOver="rolloverOn('side-index');"><IMG alt="Xalan-J 2.7.1" border="0" height="12" hspace="0" name="side-index" onLoad="rolloverLoad('side-index','graphics/index-label-2.jpg','graphics/index-label-3.jpg');" src="graphics/index-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="charter.html" onMouseOut="rolloverOff('side-charter');" onMouseOver="rolloverOn('side-charter');"><IMG alt="Charter" border="0" height="12" hspace="0" name="side-charter" onLoad="rolloverLoad('side-charter','graphics/charter-label-2.jpg','graphics/charter-label-3.jpg');" src="graphics/charter-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>  
  <A href="whatsnew.html" onMouseOut="rolloverOff('side-whatsnew');" onMouseOver="rolloverOn('side-whatsnew');"><IMG alt="What's New" border="0" height="12" hspace="0" name="side-whatsnew" onLoad="rolloverLoad('side-whatsnew','graphics/whatsnew-label-2.jpg','graphics/whatsnew-label-3.jpg');" src="graphics/whatsnew-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="readme.html" onMouseOut="rolloverOff('side-readme');" onMouseOver="rolloverOn('side-readme');"><IMG alt="Release Notes" border="0" height="12" hspace="0" name="side-readme" onLoad="rolloverLoad('side-readme','graphics/readme-label-2.jpg','graphics/readme-label-3.jpg');" src="graphics/readme-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="overview.html" onMouseOut="rolloverOff('side-overview');" onMouseOver="rolloverOn('side-overview');"><IMG alt="Overview" border="0" height="12" hspace="0" name="side-overview" onLoad="rolloverLoad('side-overview','graphics/overview-label-2.jpg','graphics/overview-label-3.jpg');" src="graphics/overview-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="downloads.html" onMouseOut="rolloverOff('side-downloads');" onMouseOver="rolloverOn('side-downloads');"><IMG alt="Download/Build" border="0" height="12" hspace="0" name="side-downloads" onLoad="rolloverLoad('side-downloads','graphics/downloads-label-2.jpg','graphics/downloads-label-3.jpg');" src="graphics/downloads-label-3.jpg" vspace="0" width="120"></A><BR>  
  <A href="getstarted.html" onMouseOut="rolloverOff('side-getstarted');" onMouseOver="rolloverOn('side-getstarted');"><IMG alt="Getting Started" border="0" height="12" hspace="0" name="side-getstarted" onLoad="rolloverLoad('side-getstarted','graphics/getstarted-label-2.jpg','graphics/getstarted-label-3.jpg');" src="graphics/getstarted-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="xsltc_usage.html" onMouseOut="rolloverOff('side-xsltc_usage');" onMouseOver="rolloverOn('side-xsltc_usage');"><IMG alt="Using XSLTC" border="0" height="12" hspace="0" name="side-xsltc_usage" onLoad="rolloverLoad('side-xsltc_usage','graphics/xsltc_usage-label-2.jpg','graphics/xsltc_usage-label-3.jpg');" src="graphics/xsltc_usage-label-3.jpg" vspace="0" width="120"></A><BR>   
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="faq.html" onMouseOut="rolloverOff('side-faq');" onMouseOver="rolloverOn('side-faq');"><IMG alt="FAQs" border="0" height="12" hspace="0" name="side-faq" onLoad="rolloverLoad('side-faq','graphics/faq-label-2.jpg','graphics/faq-label-3.jpg');" src="graphics/faq-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="samples.html" onMouseOut="rolloverOff('side-samples');" onMouseOver="rolloverOn('side-samples');"><IMG alt="Sample Apps" border="0" height="12" hspace="0" name="side-samples" onLoad="rolloverLoad('side-samples','graphics/samples-label-2.jpg','graphics/samples-label-3.jpg');" src="graphics/samples-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="commandline.html" onMouseOut="rolloverOff('side-commandline');" onMouseOver="rolloverOn('side-commandline');"><IMG alt="Command Line" border="0" height="12" hspace="0" name="side-commandline" onLoad="rolloverLoad('side-commandline','graphics/commandline-label-2.jpg','graphics/commandline-label-3.jpg');" src="graphics/commandline-label-3.jpg" vspace="0" width="120"></A><BR>
    
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="features.html" onMouseOut="rolloverOff('side-features');" onMouseOver="rolloverOn('side-features');"><IMG alt="Features" border="0" height="12" hspace="0" name="side-features" onLoad="rolloverLoad('side-features','graphics/features-label-2.jpg','graphics/features-label-3.jpg');" src="graphics/features-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="trax.html" onMouseOut="rolloverOff('side-trax');" onMouseOver="rolloverOn('side-trax');"><IMG alt="Transform API" border="0" height="12" hspace="0" name="side-trax" onLoad="rolloverLoad('side-trax','graphics/trax-label-2.jpg','graphics/trax-label-3.jpg');" src="graphics/trax-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="xpath_apis.html" onMouseOut="rolloverOff('side-xpath_apis');" onMouseOver="rolloverOn('side-xpath_apis');"><IMG alt="XPath API" border="0" height="12" hspace="0" name="side-xpath_apis" onLoad="rolloverLoad('side-xpath_apis','graphics/xpath_apis-label-2.jpg','graphics/xpath_apis-label-3.jpg');" src="graphics/xpath_apis-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="usagepatterns.html" onMouseOut="rolloverOff('side-usagepatterns');" onMouseOver="rolloverOn('side-usagepatterns');"><IMG alt="Usage Patterns" border="0" height="12" hspace="0" name="side-usagepatterns" onLoad="rolloverLoad('side-usagepatterns','graphics/usagepatterns-label-2.jpg','graphics/usagepatterns-label-3.jpg');" src="graphics/usagepatterns-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="apidocs/index.html" onMouseOut="rolloverOff('side-ext-52');" onMouseOver="rolloverOn('side-ext-52');"><IMG alt="Xalan-J API" border="0" height="12" hspace="0" name="side-ext-52" onLoad="rolloverLoad('side-ext-52','graphics/ext-52-label-2.jpg','graphics/ext-52-label-3.jpg');" src="graphics/ext-52-label-3.jpg" vspace="0" width="120"></A><BR>    
  <A href="public_apis.html" onMouseOut="rolloverOff('side-public_apis');" onMouseOver="rolloverOn('side-public_apis');"><IMG alt="Public APIs" border="0" height="12" hspace="0" name="side-public_apis" onLoad="rolloverLoad('side-public_apis','graphics/public_apis-label-2.jpg','graphics/public_apis-label-3.jpg');" src="graphics/public_apis-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="dtm.html" onMouseOut="rolloverOff('side-dtm');" onMouseOver="rolloverOn('side-dtm');"><IMG alt="DTM" border="0" height="12" hspace="0" name="side-dtm" onLoad="rolloverLoad('side-dtm','graphics/dtm-label-2.jpg','graphics/dtm-label-3.jpg');" src="graphics/dtm-label-3.jpg" vspace="0" width="120"></A><BR>   
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>    
  <A href="extensions.html" onMouseOut="rolloverOff('side-extensions');" onMouseOver="rolloverOn('side-extensions');"><IMG alt="Extensions" border="0" height="12" hspace="0" name="side-extensions" onLoad="rolloverLoad('side-extensions','graphics/extensions-label-2.jpg','graphics/extensions-label-3.jpg');" src="graphics/extensions-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="extensionslib.html" onMouseOut="rolloverOff('side-extensionslib');" onMouseOver="rolloverOn('side-extensionslib');"><IMG alt="Extensions Library" border="0" height="12" hspace="0" name="side-extensionslib" onLoad="rolloverLoad('side-extensionslib','graphics/extensionslib-label-2.jpg','graphics/extensionslib-label-3.jpg');" src="graphics/extensionslib-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="extensions_xsltc.html" onMouseOut="rolloverOff('side-extensions_xsltc');" onMouseOver="rolloverOn('side-extensions_xsltc');"><IMG alt="XSLTC Exts" border="0" height="12" hspace="0" name="side-extensions_xsltc" onLoad="rolloverLoad('side-extensions_xsltc','graphics/extensions_xsltc-label-2.jpg','graphics/extensions_xsltc-label-3.jpg');" src="graphics/extensions_xsltc-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="design/design2_0_0.html" onMouseOut="rolloverOff('side-ext-68');" onMouseOver="rolloverOn('side-ext-68');"><IMG alt="Xalan 2 Design" border="0" height="12" hspace="0" name="side-ext-68" onLoad="rolloverLoad('side-ext-68','graphics/ext-68-label-2.jpg','graphics/ext-68-label-3.jpg');" src="graphics/ext-68-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="xsltc/index.html" onMouseOut="rolloverOff('side-ext-70');" onMouseOver="rolloverOn('side-ext-70');"><IMG alt="XSLTC Design" border="0" height="12" hspace="0" name="side-ext-70" onLoad="rolloverLoad('side-ext-70','graphics/ext-70-label-2.jpg','graphics/ext-70-label-3.jpg');" src="graphics/ext-70-label-3.jpg" vspace="0" width="120"></A><BR>  
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="builds.html" onMouseOut="rolloverOff('side-builds');" onMouseOver="rolloverOn('side-builds');"><IMG alt="Building a release" border="0" height="12" hspace="0" name="side-builds" onLoad="rolloverLoad('side-builds','graphics/builds-label-2.jpg','graphics/builds-label-3.jpg');" src="graphics/builds-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="http://xml.apache.org/xalan-j/test/overview.html" onMouseOut="rolloverOff('side-ext-76');" onMouseOver="rolloverOn('side-ext-76');"><IMG alt="Testing" border="0" height="12" hspace="0" name="side-ext-76" onLoad="rolloverLoad('side-ext-76','graphics/ext-76-label-2.jpg','graphics/ext-76-label-3.jpg');" src="graphics/ext-76-label-3.jpg" vspace="0" width="120"></A><BR>
  <A href="bugreporting.html" onMouseOut="rolloverOff('side-bugreporting');" onMouseOver="rolloverOn('side-bugreporting');"><IMG alt="Bug Reporting" border="0" height="12" hspace="0" name="side-bugreporting" onLoad="rolloverLoad('side-bugreporting','graphics/bugreporting-label-2.jpg','graphics/bugreporting-label-3.jpg');" src="graphics/bugreporting-label-3.jpg" vspace="0" width="120"></A><BR>  
  <IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
  <A href="contact_us.html" onMouseOut="rolloverOff('side-contact_us');" onMouseOver="rolloverOn('side-contact_us');"><IMG alt="Contact us" border="0" height="12" hspace="0" name="side-contact_us" onLoad="rolloverLoad('side-contact_us','graphics/contact_us-label-2.jpg','graphics/contact_us-label-3.jpg');" src="graphics/contact_us-label-3.jpg" vspace="0" width="120"></A><BR>      
  
  
<IMG alt="close" border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
<P>The following sections list the core software changes in each release since Xalan-Java version 2.0.D01.</P>
<TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>For XSLTC changes since XSLTC was incorporated into Xalan-Java, see
                        <A href="xsltc_history.html">XSLTC software changes</A>.</I></FONT></TD></TR></TABLE>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.7.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/03/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorImport.java ProcessorInclude.java ProcessorLRE.java 
ProcessorStylesheetElement.java StylesheetHandler.java XSLTElementDef.java xml-xalan/java/src/org/apache/xalan/templates 
ElemExsltFunction.java<BR>
<I>Committer's log entry: </I>
Submitted by: Brian Minchau<BR>
Modified code for potential extension of classes with callbacks to the extensions.<BR><BR></LI>

<LI><I>Committed by </I>bhakti@apache.org<I> on </I>2004/03/08<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<BR>
<I>Committer's log entry: </I>
Added a newline at the end of Encodings.properties to fix bug 27516.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/03/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xslt 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java 
xml-xalan/java/src/org/apache/xalan/xsltc/compiler ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/dom ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm 
ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm/ref ObjectFactory.java xml-xalan/java/src/org/apache/xml/serializer 
ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java xml-xalan/java/src/org/apache/xpath/compiler 
ObjectFactory.java xml-xalan/java/src/org/apache/xpath/functions ObjectFactory.java<BR>
<I>Committer's log entry: </I>
Fix a bug in the findProviderClass method of ObjectFactory
classes. The argument of SecurityManager.checkPackageAccess should be a string
value of a package name, instead of a class name.<BR><BR></LI>

<LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2004/03/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FunctionTable.java<BR>
<I>Committer's log entry: </I>
Patch to hide static function table in FunctionTable class. We do not want to expose this table to others.<BR><BR></LI>

<LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2004/03/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<BR>
<I>Committer's log entry: </I>
The xmlns URI should also be used to add NS decls as attributes to a DOM. However, this was only done for attributes that started 
with 'xmlns:' and not for 'xmlns' (i.e. not for decls of the default NS).<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/04/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/objects 
DTMXRTreeFrag.java XRTreeFrag.java<BR>
<I>Committer's log entry: </I>
The problem is that about 1800 * Thread_num  XRTreeFrag  objects were created. 
It took too long for finalizer to be executed to release the references.<BR>
A lot of the objects have the same DTMs (and one XPathContext per thread).
In my fix I am suggesting 
a. to have new class DTMXRTreeFrag. The object of the class would 
be created only for different DTMs (just 5 objects). 
b. release the references to  DTM and XPathContext from XPathContext.reset()
(and remove finalize() ).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/04/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java xml-xalan/java/src/org/apache/xml/utils Trie.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 28435<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/04/28<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates AVT.java<BR>
<I>Committer's log entry: </I>
Scaling Problem in org/apache/xalan/templates/AVT.evaluate. The problem is that synchronized calls 
StringBufferPool.get() and StringBufferPool.free(buf) are redundant if (null != m_simpleString).
The bug results in severe performance degradation in multi-thread test.
The fix is simple just not to the calls when (null != m_simpleString).<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/05/03<BR>
<I>Modified: </I> xml-xalan/java/xdocs/style/stylesheets designdoc2html.xsl<BR>
<I>Committer's log entry: </I>
Provide alternative text for images to address accessibility issues.
All images should contain a short alternative text description that represents
the function of the graphic.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/05/03<BR>
<I>Modified: </I> xml-xalan/java/xdocs xml-site-style.tar.gz<BR>
<I>Committer's log entry: </I>
Update document2html.xsl within this tarball to provide alternative text for images to address accessibility issues.
All images should contain a short alternative text description that represents the function of the graphic.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/05/03<BR>
<I>Modified: </I> xml-xalan/java/samples/SAX2SAX SAX2SAX.java xml-xalan/java/samples/Pipe Pipe.java 
xml-xalan/java/samples/DOM2DOM DOM2DOM.java
xml-xalan/java/samples/UseStylesheetPI foo.xsl xml-xalan/java/samples/UseStylesheetParam foo.xsl
xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java
xml-xalan/java/samples/Trace foo.xsl<BR>
<I>Committer's log entry: </I>
Clean up related to bugzilla 24304.
There is no longer a space after the XML header. To keep the output
of this sample the same as before properties were set on the
serializer (indent=&quot;yes&quot; and standalone=&quot;no&quot; ).
Submitted by:	Brian Minchau<BR>
Reviewed by:	Sarah McNamara<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/05/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates AVT.java<BR>
<I>Committer's log entry: </I>
The problem is that we use an object pool (shared between different threads)
to allocate  FastStringBuffer objects. The problem results in a serious performance
degradation  on Z/OS and seems to be invisible on AIX.<BR>
1 Differences in optimization of object pools  for different JVMs and for different 
platforms are known(I know it now too). It is not surprising that  Z/OS and AIX 
have different results.<BR>
2. a. Object pools should be used only for very heavy object which live for a long time
and could be reused in a lot of places. <BR>
b. Small local objects which size cannot be changed could be allocated on the
stack =&gt; creating them with new in the local scope could be a good idea.<BR>
c. Caching middle size objects which can grow in size seems as a good idea,
because such objects usually cannot be allocated on the stack.
This is actually the case for FastStringBuffer objects. <BR>
Solution: Create FastStringBuffer objects in a local scope and use caching whenever possible.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/05/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Christine Li<BR>
Fixing binary compatibility (serialization/de-serialization) of XSLTProcessorApplet.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/06/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 29234<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Morris Kwan<BR>
This problem only showed up under XSLTC.  When setting the
encoding a related field was not set.  Fixed this by over-riding the 
set method for the stream serializers.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/06/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 29372<BR>
Submitted by:	J Desrochers (john@ASCnet.COM)<BR>
Reviewed by:	Brian Minchau<BR>

A safe fix for chunking up an array for output. The length  was multiplied by the
chunk number (0,1,2... chunks) then divided by &quot;chunks&quot;. John's fix uses a 
&quot;long&quot; to do the arithemetic because multiplying by the chunk number first 
could cause an overflow.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/06/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes ChildIterator.java<BR>
<I>Committer's log entry: </I>
Fix for Bugzilla bug 28879.  Classes derived from NodeTest need to ensure
that initNodeTest is called to set the filter for the kinds of nodes accepted.
Without this change, ChildIterator will reject all nodes.

Patch reviewed by Christine Li (jycli@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>aruny@apache.org<I> on </I>2004/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
Description: Improper Serialization of document type declaration in xml document.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2004/07/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR>
<I>Committer's log entry: </I>
Patch for bug 30056.  Recover the performance degradation for xsl:copy and xsl:copy-of.
Reviewed by Henry Zongaro (zongaro@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/07/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToTextStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 29706<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Christine Li<BR>

A fix to add a temporary vs. permanent output state to the serializer
(AKA result-tree-handler).  In theory the XSLT processor should set the
temporary or permanent output state, but we observer that when the
encoding of a ToTextStream serializer is null, then such a serializer is
in temporary output state.<BR>

In temorary output state we don't do any escaping or encoding or other 
sorts of normalization on output. This will be done by another serializer 
later on, and that one will be in permanent output state.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/07/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 30142<BR>
Submitted by:	Bruno Dumon (bruno@outerthought.org)<BR>
Reviewed by:	Brian Minchau<BR>

Thanks to Bruno for this simple one-line, fix where we forgot to put
a space between the PUBLIC and SYSTEM ID's in a DOCTYPE declaration
in serialized HTML output.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/07/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XString.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Yash Talwar<BR>
Reviewed by:	Brian Minchau<BR>
Fix for bugzilla 29655.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/08/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<BR>
<I>Committer's log entry: </I>
PR: 30658<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Morris Kwan<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/08/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/trace TraceManager.java<BR>
<I>Committer's log entry: </I>
PR: 30301<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Morris Kwan<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/08/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XRTreeFragSelectWrapper.java xml-xalan/java/src/org/apache/xpath/res 
XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
PR: 30262<BR>
Submitted by:	Yash Talwar<BR>
Reviewed by:	Henry Zongaro<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm DTMException.java xml-xalan/java/src/org/apache/xpath XPathException.java<BR>
<I>Committer's log entry: </I>
Fix for printStackTrace when using JDK 1.4.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xslt 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm/ref ObjectFactory.java 
xml-xalan/java/src/org/apache/xml/serializer ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java 
xml-xalan/java/src/org/apache/xpath/compiler ObjectFactory.java xml-xalan/java/src/org/apache/xpath/functions ObjectFactory.java<BR>
<I>Committer's log entry: </I>
Fixing a potential memory leak.  The reader used to read the service provider is never closed if an IOException is thrown while 
reading from it.  Adding a finally block so that the reader will always be closed.  Patch reviewed by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface. Was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorAttributeSet.java ProcessorCharacters.java ProcessorDecimalFormat.java 
ProcessorExsltFuncResult.java ProcessorExsltFunction.java ProcessorGlobalParamDecl.java ProcessorGlobalVariableDecl.java 
ProcessorImport.java ProcessorInclude.java ProcessorKey.java ProcessorLRE.java ProcessorNamespaceAlias.java ProcessorOutputElem.java 
ProcessorPreserveSpace.java ProcessorStripSpace.java ProcessorStylesheetDoc.java ProcessorStylesheetElement.java ProcessorTemplate.java 
ProcessorTemplateElem.java ProcessorText.java ProcessorUnknown.java WhitespaceInfoPaths.java XSLTElementProcessor.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates AVT.java AVTPart.java AVTPartSimple.java AVTPartXPath.java 
DecimalFormatProperties.java ElemApplyImport.java ElemApplyTemplates.java ElemAttribute.java ElemAttributeSet.java 
ElemCallTemplate.java ElemChoose.java ElemComment.java ElemCopy.java ElemCopyOf.java ElemElement.java ElemEmpty.java 
ElemExsltFuncResult.java ElemExsltFunction.java ElemExtensionCall.java ElemExtensionDecl.java ElemExtensionScript.java 
ElemFallback.java ElemForEach.java ElemIf.java ElemLiteralResult.java ElemMessage.java ElemNumber.java ElemOtherwise.java 
ElemParam.java ElemPI.java ElemSort.java ElemTemplate.java ElemTemplateElement.java ElemText.java ElemTextLiteral.java 
ElemUnknown.java ElemUse.java ElemValueOf.java ElemVariable.java ElemVariablePsuedo.java ElemWhen.java ElemWithParam.java 
FuncDocument.java FuncFormatNumb.java FuncKey.java KeyDeclaration.java NamespaceAlias.java OutputProperties.java Stylesheet.java 
StylesheetComposed.java StylesheetRoot.java TemplateList.java TemplateSubPatternAssociation.java WhiteSpaceInfo.java 
XMLNSDecl.java XUnresolvedVariable.java XUnresolvedVariableSimple.java xml-xalan/java/src/org/apache/xalan/transformer 
CountersTable.java KeyIterator.java KeyRefIterator.java xml-xalan/java/src/org/apache/xalan/xslt ObjectFactory.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm DTMConfigurationException.java DTMDOMException.java ObjectFactory.java 
xml-xalan/java/src/org/apache/xml/dtm/ref DTMNamedNodeMap.java IncrementalSAXSource_Filter.java ObjectFactory.java 
xml-xalan/java/src/org/apache/xml/serializer ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils MutableAttrListImpl.java 
NameSpace.java NodeVector.java ObjectFactory.java ObjectPool.java QName.java SAXSourceLocator.java SerializableLocatorImpl.java 
StopParseException.java StringVector.java URI.java WrappedRuntimeException.java WrongParserException.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/08/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath Expression.java FoundIndex.java NodeSetDTM.java XPath.java 
XPathProcessorException.java xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java AxesWalker.java 
BasicTestIterator.java ChildIterator.java ChildTestIterator.java DescendantIterator.java FilterExprIterator.java 
FilterExprIteratorSimple.java FilterExprWalker.java IteratorPool.java LocPathIterator.java MatchPatternIterator.java 
NodeSequence.java OneStepIterator.java OneStepIteratorForward.java PredicatedNodeTest.java ReverseAxesWalker.java 
RTFIterator.java SelfIteratorNoPredicate.java UnionChildIterator.java UnionPathIterator.java WalkingIterator.java 
WalkingIteratorSorted.java xml-xalan/java/src/org/apache/xpath/compiler ObjectFactory.java 
xml-xalan/java/src/org/apache/xpath/functions FuncBoolean.java FuncCeiling.java FuncConcat.java FuncContains.java 
FuncCount.java FuncCurrent.java FuncDoclocation.java FuncExtElementAvailable.java FuncExtFunction.java 
FuncExtFunctionAvailable.java FuncFalse.java FuncFloor.java FuncGenerateId.java FuncId.java FuncLang.java 
FuncLast.java FuncLocalPart.java FuncNamespace.java FuncNormalizeSpace.java FuncNot.java FuncNumber.java 
FuncPosition.java FuncQname.java FuncRound.java FuncStartsWith.java FuncString.java FuncStringLength.java 
FuncSubstring.java FuncSubstringAfter.java FuncSubstringBefore.java FuncSum.java FuncSystemProperty.java 
Function.java Function2Args.java Function3Args.java FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java 
FuncTranslate.java FuncTrue.java FuncUnparsedEntityURI.java ObjectFactory.java WrongNumberArgsException.java 
xml-xalan/java/src/org/apache/xpath/objects XBoolean.java XBooleanStatic.java XNodeSet.java XNodeSetForDOM.java 
XNull.java XNumber.java XObject.java XRTreeFrag.java XRTreeFragSelectWrapper.java XString.java XStringForChars.java 
XStringForFSB.java xml-xalan/java/src/org/apache/xpath/operations And.java Bool.java Div.java Equals.java Gt.java 
Gte.java Lt.java Lte.java Minus.java Mod.java Mult.java Neg.java NotEquals.java Number.java Operation.java Or.java 
Plus.java Quo.java String.java UnaryOperation.java Variable.java VariableSafeAbsRef.java 
xml-xalan/java/src/org/apache/xpath/patterns ContextMatchStepPattern.java FunctionPattern.java NodeTest.java 
StepPattern.java UnionPattern.java<BR>
<I>Committer's log entry: </I>
Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/08/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils Trie.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
No external changes to Trie, but some additional APIs to make for a lower case
only search in a Trie (possibly for future XHTML support where the element
names are lower-case only).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/08/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<BR>
<I>Committer's log entry: </I>
Minor changes to CharInfo to map charaters to decorated entities (e.g. &quot;&amp;lt;&quot; ) 
rather than just entity names (e.g. &quot;lt&quot;), which is a minor performance improvement.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2004/08/30<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<BR>
<I>Committer's log entry: </I>
Fix a memory leak problem described in bugzilla 28082.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/09/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerTraceWriter.java ToStream.java 
WriterChain.java WriterToASCI.java WriterToUTF8Buffered.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
Code clean up, to have an explicit interface, WriterChain, for writers that wrap other Writers or OutputStreams,
e.g. WriterToUTF8Buffered.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/09/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
Javadoc changes, and added a call in ToXMLStream.processingInstruction() 
method to effectively consider that a startDocument() call was made,
if none was yet seen.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/09/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 27522<BR>
Submitted by:	Brian Minchau<BR>
committing patch from bugzilla 27522.<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2004/09/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<BR>
<I>Committer's log entry: </I>
Fixed bug where JDBC execute was being called instead ofg executeQuery.
executeQuery will always retrurn a result set even if the query does not return any  rows
where execute won't. This was causing a compatibility issue.
Added in Record skip code to help with pagination.<BR>
PR: http://nagoya.apache.org/jira/browse/XALANJ-1908<BR>
Submitted by:	John Gentilin<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2004/09/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<BR>
<I>Committer's log entry: </I>
Fixed bug where the close document method could not locxate the SQL Document.
see http://nagoya.apache.org/jira/browse/XALANJ-1925.<BR>
Obtained from:  Moraine Didier mailto://didier.moraine@winterthur.be<BR>
Submitted by:	John Gentilin<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/09/17<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Added new targets to support building the distribution packages (*-bin.tar.gz/.zip and *-src.tar.gz/.zip)
without building the user guide and api docs.
Reorganized some sections to make the targets more readable.
Renamed the &quot;*-nojardepends&quot; rules to either &quot;*-compile&quot; or &quot;*-build&quot; to make them more intuitive.
Reviewed by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/10/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/patterns NodeTest.java<BR>
<I>Committer's log entry: </I>
Patch from Yash Talwar (ytalwar@ca.ibm.com) for XALANJ-1186.
The existing code in the interpretive processor was handling namespace::pre by
resolving the namespace prefix &quot;pre&quot; in the stylesheet, and then looking for
namespace nodes with that same URI in the input document.  In fact, it should
look for namespaces nodes in the input document that declare the prefix &quot;pre&quot;,
without regard to the associated URI. The patch was reviewed by myself (zongaro@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<BR>
<I>Committer's log entry: </I>
XSL Transformation drops content inside xsl:comment tags.<BR>
PR: XALANJ-1966<BR>
Submitted by:	Yash Talwar<BR>
Reviewed by:	 Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/operations Variable.java<BR>
<I>Committer's log entry: </I>
Null Pointer Exception on sorting using a variable.<BR>
PR: XALANJ-1942<BR>
Submitted by:	Yash Talwar<BR>
Reviewed by:	Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorNamespaceAlias.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<BR>
<I>Committer's log entry: </I>
Null Pointer Exception when namespace-alias element says to use &quot;#default&quot; namespace but there is no default namespace.
PR: XALANJ-1967<BR>
Submitted by:	Yash Talwar<BR>
Reviewed by:	Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/10/13<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
At the suggestion of Joseph Kesselman, dropped contents of the org.apache.xml.utils.synthetic package, as they have never been used.
Patch reviewed by Christine Li (jycli@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/10/13<BR>
<I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java 
xml-xalan/java/xdocs/sources/xalan extensions.xml resources.xml<BR>
<I>Committer's log entry: </I>
Fixed of Bug report XalanJ-1822. Added alternative BSF implementation support for extension functions in languages other than Java
Patch reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/14<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils AttList.java BoolStack.java DOM2Helper.java Messages.java 
SerializerMessages_en.java SerializerMessages.java StringToIntTable.java SystemIDResolver.java URI.java Utils.java 
WrappedRuntimeException.java<BR>
<I>Committer's log entry: </I>
PR: XALANJ-1891<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Yash Talwar<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/14<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java SerializerMessages.java Utils.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
Made some fields final or private to make the objects immutable, especially the messages.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/14<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java CharInfo.java DOMSerializer.java ElemDesc.java 
EmptySerializer.java EncodingInfo.java Encodings.java ExtendedContentHandler.java ExtendedLexicalHandler.java Method.java 
NamespaceMappings.java ObjectFactory.java OutputPropertiesFactory.java OutputPropertyUtils.java SerializationHandler.java 
Serializer.java SerializerBase.java SerializerConstants.java SerializerFactory.java SerializerTrace.java SerializerTraceWriter.java 
ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToUnknownStream.java 
ToXMLSAXHandler.java ToXMLStream.java TreeWalker.java Utils.java Version.java WriterToASCI.java ElemContext.java TransformStateSetter.java<BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Yash Talwar<BR>
Source code changes to the serializer to make it independent of Xalan.
Mostly message and utility usage changes.
However multiple classes had their visibility reduced to less than &quot;public&quot;.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/14<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils CharKey.java Trie.java<BR>
<I>Committer's log entry: </I>
PR: XALANJ-1891<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Yash Talwar<BR>
Deleting Charkey and Trie which were only used by the serializer.
These classes are migrated to the serializer package, in the case of
CharKey, it is now an inner private class.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/15<BR>
<I>Modified: </I> xml-xalan/java/src MANIFEST.SERIALIZER<BR>
<I>Committer's log entry: </I>
PR: XALANJ-1891<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Sarah McNamara<BR>
Creating MANIFEST.SERIALIZER, a template like MANIFEST.MF but
for an independent serializer.jar that is not part of xalan.jar<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/15<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
PR: XALANJ-1891<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Sarah McNamara<BR>
Changes to java/build.xml so that the serializer.jar is built and used by Xalan.
The two new build targets are serializer.jar and serializer-dist.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/10/15<BR>
<I>Modified: </I> xml-xalan/java/bin serializer.jar<BR>
<I>Committer's log entry: </I>
PR: XALANJ-1891<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Sarah McNamara, Yash Talwar<BR>
Checking in an initial serializer.jar into java/bin, hopefully this won't change too often.<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2004/10/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java XConnection.java SQLDocument.java<BR>
<I>Committer's log entry: </I>
This patch makes the close() function behave better but still has a 
problem when certain iterators are used.  This code is at least safe 
in all instaces.  It also fixes a minor bug in the default connection pool.<BR>
Obtained from: John Gentilin<BR>
Submitted by:	John Gentilin<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/10/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<BR>
<I>Committer's log entry: </I>
A patch to fix Bug XALANJ-1708. Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/10/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java UnionPathIterator.java<BR>
<I>Committer's log entry: </I>
A fix for bug XALANJ-1810. Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/10/21<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Fix the samples build. The samples.class.path needs to include the serializer.jar.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2004/10/28<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
One more fix to enable builds with JDK 1.4.x.  Need to add the serializer classes to the
xslt.boot.class.path.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/11/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<BR>
<I>Committer's log entry: </I>
String comparison should use String.equals(), instead of ==.
Even == works fine for most of the cases, for a serializable object, two variable originally reference to the same string
after deserialization, they no longer reference the same string, although the values are the same. Fix for bug XalanJ-1550.
<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/11/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<BR>
<I>Committer's log entry: </I>
The latest Rhino1_5R5 checks for the script language line/column no.&gt;=0. Fixed for bug XALANJ-1887.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/11/03<BR>
<I>Modified: </I> xml-xalan/java/src/META-INF/services org.apache.xalan.extensions.bsf.BSFManager<BR>
<I>Committer's log entry: </I>
Added a service provider configuration file to set the Apache BSF as the default implementation for scripting language support.
<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/11/03<BR>
<I>Modified: </I> xml-xalan/java/bin bsf.jar bsf.LICENSE.txt bsf.README.txt<BR>
<I>Committer's log entry: </I>
remove IBM bsf implementation from the distribution. Xalan is not going to ship any bsf implementation. If users need 
IBM bsf, they can download it from Attic.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/11/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Lexer.java XPathParser.java xml-xalan/java/src/org/apache/xpath/domapi 
XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNamespaceImpl.java XPathNSResolverImpl.java XPathResultImpl.java 
XPathStylesheetDOM3Exception.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
PR: bug XALANJ-1985<BR>
Submitted by:	Yash Talwar<BR>
Reviewed by:	Brian Minchau<BR>
Support for DOM 3 API, for use by an XML Parser.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/11/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-1955.  The equals(Object) method contains a list of
instanceof checks, and then casts the Object argument to the tested type in
order to dispatch to a more specific equals method.  In the case where the
Object argument was an XMLString, the code was actually casting &quot;this&quot; to
XMLString - thus testing this.equals(this), which will always be true.<BR>

Reviewd by Joanne Tong (joannet@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/11/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-1368.<BR>
The method getKeyDeclaration was looping through all the xsl:key elements
defined, and returning the first with the required name.  However, more than
one xsl:key element can specify the same name, and should be treated
cumulatively.  Modified the method so that it returns all elements with the
required name, and the caller so that it tries to match against the patterns
associated with all such elements.<BR>

Reviewed by Joanne Tong (joannet@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2004/11/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR>
<I>Committer's log entry: </I>
Fix a memory leak problem in DTMManager (XALANJ-1999).<BR><BR></LI>

<LI><I>Committed by </I>joannet@apache.org<I> on </I>2004/12/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyImport.java xml-xalan/java/src/org/apache/xalan/transformer 
TransformerImpl.java<BR>
<I>Committer's log entry: </I>
Fixed XALANJ-1824. Changed current template rule when named template executes an xsl:apply-imports.<BR><BR></LI>

<LI><I>Committed by </I>joannet@apache.org<I> on </I>2004/12/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java<BR>
<I>Committer's log entry: </I>
Fixed XALANJ-1662. Allow pipeDocument to throw exceptions.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/12/15<BR>
<I>Modified: </I> Many files....<BR>
<I>Committer's log entry: </I>
Patch for bug report XALANJ-2008<BR>
Based on Sun's Security Code Guidelines, modified the code to improve the security. Major changes includes:<BR>
1. Added final modifier to static variables;<BR>
2. Reduced scope and added public get methods whenever it is appropriate;<BR>
3. Changed some static variable to instance variables;<BR>
4. Changed some interfaces to final classes, if those interfaces are used only to define constants<BR>
5. Removed the usage of System.exit;<BR>
6. For various org.apache.xml.utils.res.XResourceBundle, the getObject() methods return immutable array wrappers instead of arrays<BR>
7. Changed static methods of org.apache.xpath.compiler.FunctionTable to instance methods and the reference of a function table is passed 
around the processing to create an XPath object;<BR>
8. Changed the flags of FEATURE_INCREMENTAL, FEATURE_OPTIMIZE and FEATURE_SOURCE_LOCATION to instance variables in TransformerFactorImpl. 
So they will not be changed during a processing once a new Templates is created;<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2004/12/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<BR>
<I>Committer's log entry: </I>
Patch for bug XALANJ-1592. Submitted by Catya Alone (catyaa@hotmail.com).
Set the parent node for the arguments in extension functions.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java<BR>
<I>Committer's log entry: </I>
Partial fix for bug XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages.java<BR>
<I>Committer's log entry: </I>
Partial fix for bug XALANJ-2021 to make key/keyvalue consistent.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages_ca.java SerializerMessages_cs.java 
SerializerMessages_de.java SerializerMessages_es.java SerializerMessages_fr.java SerializerMessages_hu.java 
SerializerMessages_it.java SerializerMessages_ja.java SerializerMessages_ko.java SerializerMessages_pl.java 
SerializerMessages_pt_BR.java SerializerMessages_ru.java SerializerMessages_sv.java SerializerMessages_tr.java 
SerializerMessages_zh_CN.java SerializerMessages_zh_TW.java<BR>
<I>Committer's log entry: </I>
Other languages, for XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils MsgKey.java<BR>
<I>Committer's log entry: </I>
A class containing only message keys, to be shared by all language
translations (including English).  This is to prevent replication of these
keys during translation. Related to XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages_ca.java SerializerMessages_cs.java 
SerializerMessages_de.java 
SerializerMessages_es.java SerializerMessages_fr.java SerializerMessages_hu.java SerializerMessages_it.java SerializerMessages_ja.java 
SerializerMessages_ko.java SerializerMessages_pl.java SerializerMessages_pt_BR.java SerializerMessages_ru.java SerializerMessages_sv.java 
SerializerMessages_tr.java SerializerMessages_zh_CN.java SerializerMessages_zh_TW.java<BR>
<I>Committer's log entry: </I>
Changes for moving the message keys, to be shared by all language
translations (including English).  This is to prevent replication of these
keys during translation. Related to XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java SerializerMessages.java URI.java 
xml-xalan/java/src/org/apache/xml/serializer CharInfo.java OutputPropertiesFactory.java SerializerBase.java 
SerializerFactory.java ToHTMLStream.java ToStream.java ToTextStream.java ToXMLStream.java<BR><I>Committer's log entry: </I>
Changes for moving the message keys, to be shared by all language
translations (including English).  This is to prevent replication of these
keys during translation. Related to XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/12/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<BR>
<I>Committer's log entry: </I>
Serializer messages were copied into a message file in the
org.apache.xml.serializer.utils package.
The serializer messages in this file are now &quot;dead&quot;, so they are being deleted.
This is part of the cleanup with XALANJ-2021.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/12/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNamedNodeMap.java DTMNodeProxy.java<BR>
<I>Committer's log entry: </I>
Applying patch for Jira bug report XALANJ-1427 on behalf of Yash Talwar (ytalwar@ca.ibm.com).

Completing support for DOM Level 2 Core methods that were previously
unimplemented, and fixed some bugs in the implementation.  The implementation
continues to be, of necessity, a read-only implementation.<BR>

In particular, implemented the following:<BR>

  DTMNamedNodeMap.getNamedItem(String)<BR>
  DTMNodeProxy.getElementsByTagName(String)<BR>
  DTMNodeProxy.getElementsByTagNameNS(String,String)<BR>
  DTMNodeProxy.getElementById(String,String)<BR>
  DTMNodeProxy.getAttributeNodeNS(String,String)<BR><BR></LI>
  
  <LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/01/05<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR>
<I>Committer's log entry: </I>
Added a FAQ about how to use XSLTC in applet when using JRE1.4. It is a fix for bug report XALANJ-1705. Patch reviewed and 
modified by Sarah McNamara<BR><BR></LI>

<LI><I>Committed by </I>ilene@apache.org<I> on </I>2005/01/10<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-2013.  Duplicate time zone string returned from EXSLT time() function.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/01/10<BR>
<I>Modified: </I> xml-xalan/java/src manifest.xalan-interpretive<BR>
<I>Committer's log entry: </I>
New manifest file to resolve Jira bug report XALANJ-1853.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/01/10<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-1853 .  Use the new xalan interpretive manifest file
when building the standalone xalan.jar that only contains the interpretive processor.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/01/10<BR>
<I>Modified: </I> xml-xalan/java/src MANIFEST.MF MANIFEST.SERIALIZER manifest.xsltc<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-1852.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/01/20<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java<BR>
<I>Committer's log entry: </I>
Applying patch for Jira bug report XALANJ-1640.<BR>

As it's currently written, SerializerUtils.outputResultTreeFragment loops
through the nodes in a result tree fragment, and for each one, it checks
whether the node is in some namespace.  If it is not, the code undeclares the
default namespace by calling handler.startPrefixMapping(&quot;&quot;, &quot;&quot;).  The problem
is that if the RTF that's being copied just consists of a text node (or PIs or
comments), that undeclaration of the default namespace hangs around until some
subsequent child element picks it up as one of its attributes, even if that
element is in some namespace - even what should be the default!<BR>

The fix is to check whether the node that is being output is an element node
prior to issuing the handler.startPrefixMapping call - that ensures the prefix
mapping is not issued unless it's actually going to be used by the node that is
about to be serialized.<BR>

This patch was reviewed by Brian Minchau (minchau@ca.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/01/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath CachedXPathAPI.java<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-1811.<BR>

Updated Javadocs for constructors to make it clear that a single instance of
CachecXPathAPI must not be used by multiple threads without synchronization.<BR>

Reviewed by Christine Li (jycli@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/01/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-1888.<BR>

It is possible for the characters SAX event to specify a length of zero.  Text
nodes should not be created in such situations.  Changed the charactersFlush
method to guard against this case.<BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/01/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR>
<I>Committer's log entry: </I>
Two part fix for Jira bug report XALANJ-1888.<BR>

1) It is possible for the characters SAX event to specify a length of zero.
Text nodes should not be created in such situations.  Changed the
charactersFlush method to guard against this case.<BR>

2) Made a defensive change to references to m_dataOrQName.  If the value in
this vector is to be interpreted as an index into m_data, it is stored as a
negative value (via calls to addNode).  However, most references to elements of
m_dataOrQName were checking whether the value was non-positive, treating a
value of zero as an index into m_data as well.  The zeroth entry into m_data is
an invalid entry.<BR>
The fix to charactersFlush described above should ensure that zero is never
stored in m_dataOrQName, but I thought it was just as well to duplicate the
interpretation used in storing values in m_dataOrQName.<BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/02/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<BR>
<I>Committer's log entry: </I>
Implement Errata E24, when the value attribute of xsl:number is NaN, infinite or less than 0.5. 
More details please refer to bug report XALANJ-1979. Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/02/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res 
XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-1478.<BR>

In the recursive descent parsing of an ill-formed XPath expression like &quot;2+&quot;,
when the parser reaches the end of the expression while still looking for an
operand it ultimately ends up trying to see whether what remains can be parsed
as a location path.  However, the LocationPath method was silently parsing the
end of an expression as a location path!  Added an error for that situation.<BR>

Reviewed by Brian Minchau (minchau@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/02/09<BR>
<I>Modified: </I> xml-xalan/java/samples/trax ExampleContentHandler.java<BR>
<I>Committer's log entry: </I>
Fix for Jira bug report XALANJ-2054.<BR>

The sample ContentHandler code was printing the namespaceURI argument of
startElement and of endElement twice, but never printed the localName argument.
Fixed that typo.<BR>

Reviewed by Brian Minchau (minchau@ca.ibm.com)<BR><BR></LI>


<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/02/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java EmptySerializer.java 
ExtendedContentHandler.java NamespaceMappings.java SerializerBase.java ToStream.java ToTextSAXHandler.java 
ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java xml-xalan/java/src/org/apache/xalan/serialize 
SerializerUtils.java xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java ElemLiteralResult.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-1886. Multiple problems fixed related to collecting xsl:attributes 
with over-ridden values and prefix/URI maps.  With this fix, internally the
serializer correctly identifies attributes by their expanded QName, which 
includes the URI rather than the prefix.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/02/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java xml-xalan/java/src/org/apache/xml/serializer 
TreeWalker.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-1985, reviewed by Henry Zongaro. The problem was that a serialized DOM failed to declare a prefix/URI mapping.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/02/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-2037.  The trace information doesn't have the right location information in this case.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java ExtendedContentHandler.java SerializerBase.java<BR>
<I>Committer's log entry: </I>
Committing serializer.patch5.txt in JIRA issue XALANJ-1886,
that puts back an old attAttribute() method that takes 5 String arguments.
There is a new one that takes these 5 String arguments and a boolean to indicate if it is from an xsl:attribute
or not.  I'm just restoring the old method. Patch reviewed by Henry Zongaro.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/02/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java SerializationHandler.java SerializerBase.java 
ToStream.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-2033 and XALANJ-2051 so that the serializer will serialize DTD
tags if desired.  The patch was reviewed by Ilene Seeleman.
<BR><BR></LI><LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/02/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils URI.java<BR>
<I>Committer's log entry: </I>
The fix is for XALANJ-2059.<BR>

The problem is that when href attribute has aboslute uri with jar scheme and
base uri is not null, then base uri is pre-appended to uri specified in href attribute.
The newer patch is according to RFC 2396.
The newer patch ignores base uri and directly make use of uri specifed href attribute, provided following conditions are met.<BR>
a)If uri specified in href attribute starts with / after the scheme and :
  For example, href=&quot;file:/myDIR/myXSLFile.xsl.<BR>
b)If scheme specified for uri href attribute is not same as scheme for base uri.<BR>
c)If base uri is not hierarchical<BR>

Henry Zongaro has helped creating this patch.<BR><BR></LI>

<LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/03/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerConstants.java ToStream.java ToXMLStream.java 
xml-xalan/java/src/org/apache/xml/serializer/utils MsgKey.java SerializerMessages.java<BR>
<I>Committer's log entry: </I>
This patch fix XALANJ-2070.  This patch add XML 1.1 support in term of following:<BR>
- Output Document can be of Version XML 1.1<BR>
- Control Characters in Range C0 and C1 are output as NCR.<BR>
- Namespaces in XML 1.1 can be IRIs.<BR>
- NCNames and QNames can conform to XML 1.1 specifications.<BR>
- NEL and LSEP characters are treated as new end of line character as per XML 1.1 specifications.<BR>

Thanks to Brian Minchau for reviewing the patch.  Brian Minchau and Henry Zongaro has also helped how XML 1.1 support should be done.
<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/03/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates 
ElemExtensionCall.java ElemLiteralResult.java<BR>
<I>Committer's log entry: </I>
Added implementation for getAttribute, getAttributeNS and getAttributes for LRE. A fix for bug report XALANJ-1526.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/03/03<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/design design2_0_0.xml<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-1990.  Fixes broken link to apidocs for Serializer.html.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/03/03<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2026.  Fixes typo in Debugger interface code example.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/03/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer/utils 
MsgKey.java SerializerMessages.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-2074, committing patch2 in that issue, which removes two
untranslated messages in SerializerFactory, and uses a new common message
in SerializerMessages.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/03/10<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<BR>
<I>Committer's log entry: </I>
Marked the code to be privileged, which allows users to load
customized entity files in sandbox. Fixed bug report XALANJ-2068.
Patch was reviewed by Brian Minchau (minchau@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/03/10<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
This patch fixes XALANJ-1431. The patch has been reviewed by Brian.
The problem is that that when an empty attribute value is encountered, a text node is being created 
with empty string. 
Henry Zongaro has helped finding the XSLT 1.0 specs. that suggest a text node with empty string should not be created. 
URL http://www.w3.org/TR/xslt#value-of has the following information: 
&quot;The xsl:value-of element is instantiated to create a text node in the result tree. The required select attribute is an 
expression; this expression is evaluated and the resulting object is converted to a string as if by a call to the string 
function. The string specifies the string-value of the created text node. If the string is empty, no text node will be 
created. The created text node will be merged with any adjacent text nodes.&quot;<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/03/14<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan builds.xml<BR>
<I>Committer's log entry: </I>
Patch for Jira bug report XALANJ-2079.  Updated links to nightly Gump build. Reviewed by Brian Minchau.<BR><BR></LI>

<LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/03/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java xml-xalan/java/src/org/apache/xalan/templates 
ElemAttribute.java ElemElement.java ElemPI.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java 
AttributeSet.java CallTemplate.java DecimalFormatting.java Key.java Output.java ProcessingInstruction.java Template.java 
VariableBase.java WithParam.java xpath.lex XslAttribute.java XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
Util.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java xml-xalan/java/src/org/apache/xml/serializer 
WriterToUTF8Buffered.java xml-xalan/java/src/org/apache/xml/utils QName.java XML11Char.java<BR>
<I>Committer's log entry: </I>
This is resolve UTF-8 Charcater support and QName character support for XML 1.1 support in XALANJ-2070.
Henry Zongaro and Brian Minchau helped in fixing this part of the JIRA issue.
A new class org.apache.xml.utils.XML11Char has been included to support XML 1.1 characters.
Also a reference to org.apache.xml.utils.XMLChar has been replaced with a reference to
org.apache.xml.utils.XML11Char in almost all the places in Xalan.
org.apache.xml.serializer.WriterToUTF8Buffered has been update to support UTF-8 characters that can be represented in four bytes.
<BR><BR></LI>

<LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/03/30<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/domapi package.html<BR>
<I>Committer's log entry: </I>
This resolves XALANJ-2085. Sarah McNamara has reviewed this change.<BR><BR></LI>

<LI><I>Committed by </I>ytalwar@apache.org<I> on </I>2005/04/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<BR>
<I>Committer's log entry: </I>
This is a fix for XALANJ-2089.
Christine Li has created this patch.
Brian Minchau helped in creating this patch.
Brian Minchau also reviewed this patch.
org.apache.xalan.templates.ElemNumber.java has raised some performance issue as 
a static array to hold resources was removed earlier.  However, the removal of static array is necessary
to fix a potential bug multithread environment, where a given thread can request different locale than another thread.

This patch resolves the performance glicth that was found in internal testing.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<BR>
<I>Committer's log entry: </I>
Commiting patch for XALANJ-2095, that tabs in text nodes in XML documents
are serialized to &amp;#9; but should stay as a tab character.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/07<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<BR>
<I>Committer's log entry: </I>
Patch from XALANJ-1924 applied. The one deprecated API used is replace
by the current one, but multiple typos in other examples are corrected.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<BR>
<I>Committer's log entry: </I>
Committing patch for XALANJ-2077.  This performance modification is
estimated to shave 3% of the serialization stage of small documents.
Every little bit counts.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<BR>
<I>Committer's log entry: </I>
Appling fix for XALANJ-2086, which pointed out that findCharToByteConverterMethod() 
always returned null.  This bug was introduced some time ago during some security
fixes.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Fix for XALANJ-2109 applied (we won't \n to \r\n in an HTML attribute value on
Windows OS anymore, it will be left as is during serialization).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/04/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<BR>
<I>Committer's log entry: </I>
Applying patch in XALANJ-2105.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java 
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
SmartTransformerFactoryImpl.java TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java 
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTMdefaultNamespaceDeclarationNode.java xml-xalan/java/src/org/apache/xml/utils 
UnImplNode.java xml-xalan/java/src/org/apache/xpath/domapi XPathNamespaceImpl.java xml-xalan/java/src/org/apache/xpath/operations 
Variable.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
JAXP 1.3 integration. Integrate the Sun donated JAXP 1.3 implementation into the head branch.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/jaxp JAXPExtensionsProvider.java JAXPPrefixResolver.java JAXPVariableStack.java 
XPathExpressionImpl.java XPathFactoryImpl.java XPathImpl.java<BR>
<I>Committer's log entry: </I>
JAXP 1.3 integration. Commit the XPath API implementation under org.apache.xpath.jaxp.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/17<BR>
<I>Modified: </I> xml-xalan/java/bin xml-apis.jar<BR>
<I>Committer's log entry: </I>
New xml-apis.jar containing JAXP 1.3 APIs.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/05/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FuncLoader.java FunctionTable.java Keywords.java 
ObjectFactory.java SecuritySupport.java SecuritySupport12.java XPathParser.java xml-xalan/java/src/org/apache/xpath/functions 
FuncExtFunctionAvailable.java xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<BR>
<I>Committer's log entry: </I>
Modified FunctionTable. Although it is not recommanded, but it is doable for users to add a customized function or overwrite 
the default implementation of a build-in function. Fixed bug report XALANJ-2116. Patch is reviewed by Henry Zongaro.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/20<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java 
xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<BR>
<I>Committer's log entry: </I>
Support DOMResult.nextSibling in XalanJ Interpretive. If nextSibling is not null, then result nodes are inserted
before it.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/20<BR>
<I>Modified: </I> xml-xalan/java/samples/XPathAPI ApplyXPathJAXP.java foo.xml XPathResolver.java<BR>
<I>Committer's log entry: </I>
Add two samples to demonstrate how to use the XPath API in JAXP 1.3.<BR>
1. ApplyXPathJAXP. Basic sample like ApplyXPath, but use JAXP 1.3 XPath API instead.<BR>
2. XPathResolver. Demonstrate how to use NamespaceContext, XPathFunctionResolver and XPathVariableResolver.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/30<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java 
ExtensionNamespaceContext.java XPathFunctionImpl.java XPathFunctionResolverImpl.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2126. This is a sample implementation of XPathFunctionResolver, with support for
Java and EXSLT extension functions.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/30<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<BR>
<I>Committer's log entry: </I>
New messages for XALANJ-2126. Messages for the sample XPathFunctionResolver implementation.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/05/30<BR>
<I>Modified: </I> xml-xalan/java/samples/XPathAPI ExtensionFunctionResolver.java<BR>
<I>Committer's log entry: </I>
For XALANJ-2126. New sample to demonstrate how to use the sample
XPathFunctionResolver to evaluate XPath expression containing
Java and EXSLT extension functions.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/05/31<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Committing patch for issue XALANJ-2121, which is that some empty attributes
of some HTML elements are note serialized as empty.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/05/31<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Putting static iniitialization of HTML element/attribute information in a static method,
which is invoked from a static { ...} block.
No real difference, but slowly inching this code towards adding a
ToXHTMLStream class that extends ToXMLStream, but uses methods in
ToHTMLStream.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/05/31<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Added &quot;nowrap&quot; as an empty attribute for elements &lt;div&gt; &lt;src&gt; and &lt;tr&gt;
as these are either Netscape or Internet-Explorer extensions.
This is patch3 from XALANJ-2121.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/06/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java ToStream.java<BR>
<I>Committer's log entry: </I>
Applying patcth for JIRA XALANJ-2093. Adding a xalan:line-separator extension output attribute.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java 
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/utils DefaultErrorHandler.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2134. Change the error handling behavior to be conformant with the requirement
from JAXP 1.3 that the default ErrorListener will report all warnings and errors
to System.err and does not throw any Exceptions.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
ProcessorInclude.java ProcessorLRE.java ProcessorStylesheetElement.java TransformerFactoryImpl.java 
xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates 
ElemExtensionCall.java StylesheetRoot.java xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
TransformerImpl.java TrAXFilter.java xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xml/utils 
DOMHelper.java xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/functions 
FuncExtFunction.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2136. Support the secure processing feature in Xalan interpretive. When this feature
is set to true, the following XML processing limits are applied:<BR>
1. extension functions and extension elements are disabled.<BR>
2. parsers created by the XSLT processor also have the secure processing feature set
to true.<BR>

A new option -secure is added to the Process command line to enable the secure
processing feature.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/15<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan 
features.xml samples.xml xpath_apis.xml<BR><I>Committer's log entry: </I>
Patch for XALANJ-2124. Update the online documentation to include descriptions on the new JAXP 1.3 features:<BR>
1. Add a new &quot;XPath API&quot; page to provide a complete guide on how to use the
XPath API in JAXP 1.3. Details on basic usage patterns, factory plugin mechanism,
how to use NamespaceContext, XPathVariableResolver and XPathFunctionResolver.<BR>
2. Document the secure processing feature in the features page.<BR>
3. Describe three new XPath API related samples in the samples page.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/21<BR>
<I>Modified: </I> xml-xalan/java/src/META-INF/services javax.xml.xpath.XPathFactory<BR>
<I>Committer's log entry: </I>
Service provider file for javax.xml.xpath.XPathFactory.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/21<BR>
<I>Modified: </I> xml-xalan/java/samples/XPathAPI ExtensionTest.java numlist.xml<BR>
<I>Committer's log entry: </I>
xml and extension java source for the ExtensionFunctionResolver sample.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/21<BR>
<I>Modified: </I> xml-xalan/java/src MANIFEST.MF manifest.xalan-interpretive manifest.xsltc<BR>
<I>Committer's log entry: </I>
Update manifest files for jaxp version and remove entry for org.w3c.dom.xpath.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/22<BR>
<I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/bin xml-apis.jar xml-xalan/java/src 
xml-commons-external-1.2.01-src.tar.gz xml-commons-external-1.3.01-src.tar.gz<BR><I>Committer's log entry: </I>
Update the source and binary of xml-apis.jar.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR>
<I>Committer's log entry: </I>
Java docs cleanup. Remove the word &quot;Experimental&quot; for DOM Level 3 spec and update the URI link.
Also remove the obsolete methods that are replaced by new ones.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
StylesheetHandler.java xml-xalan/java/src/org/apache/xml/utils UnImplNode.java<BR>
<I>Committer's log entry: </I>
Cleanup javadocs on DOM Level 3 spec. Update the uri and remove
obsolete methods. The getVersion() method in org.w3c.dom.Node is replaced by
getXmlVersion().<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/24<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Add xml-apis.jar to boot classpath to fix a build problem with JDK 1.4.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/28<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2076. Fix a bug in date:month-in-year.<BR><BR></LI>

<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2005/06/29<BR>
<I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR>
<I>Committer's log entry: </I>
New xercesImpl.jar from the official Xerces-J 2.7.0 release.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2005/06/29<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java
xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<BR>
<I>Committer's log entry: </I>
Cleanup resource files. Remove unused constants and commented out message keys. Fix for bug XALANJ-2161
Patch is reviewed by Sarah McNamara (mcnamara@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/07/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<BR>
<I>Committer's log entry: </I>
Patch for Jira issue XALANJ-1978.  Reviewed by Christine Li (jycli@ca.ibm.com).<BR>

Behaviour of StreamResult.getSystemId has changed if the Result object was
created using a File.  The URI returned begins with &quot;file:/&quot; where it used to
begin with &quot;file:///&quot;.  TransformerIdentityImpl had a dependency on the old
behaviour.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<BR>
<I>Committer's log entry: </I>
Applying patch2 from XALANJ-2023.<BR>
Submitted by Ken Weiner, reviewed, approved, applied by Brian Minchau.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Changing &quot;&lt;!DOCTYPE HTML&quot; to &quot;&lt;!DOCTYPE html&quot; to be more xhtml friendly.
Applying the patch in XALANJ-2103 that was created by Brian Minchau
and reviewed/approved by Joanne Tong.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2099 provided by Morris Kwan and reviewed by me.

According to the EXSLT doc the extension date:day-abbreviation() should
output a three-letter English day abbreviation: one of 'Sun', 'Mon', 'Tue',
'Wed', 'Thu' or 'Fri'.  (See http://exslt.org/date/functions/day-abbreviation/index.html)<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2143.   Javadoc improvement for TransformerImpl.setOutputProperty(name,value).<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/15<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<BR><I>Committer's log entry: </I>
Patch for XALANJ-2142 - correction for the xalan namespace URI.  Patch provided by Brian Minchau and
reviewed by Sarah McNamara.<BR>

Patch for XALANJ-2144 - incorrect use of the word &quot;concurrently&quot; when referring to the XPath module.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/licenses BCEL.LICENSE.txt LICENSE.DOM-documentation.html LICENSE.DOM-software.html 
LICENSE-SAX.html regexp.LICENSE.txt runtime.LICENSE.txt serializer.LICENSE.txt serializer.NOTICE.txt xalan.LICENSE.txt 
xalan.NOTICE.txt xercesImpl.LICENSE.txt xercesImpl.NOTICE.txt xml-apis.LICENSE.txt xml-apis.NOTICE.txt<BR>
<I>Committer's log entry: </I>
Creation of the xml-xalan/java/licenses directory which contains
all licenses required for the Xalan Java (interpretive and compiled) runtime
jars and its dependencies.   Most of these files have been moved here
from xml-xalan/java/bin.  The serializer files are new for the Xalan Java 2.7
release (fixes XALANJ-1977).  The xercesImpl.LICENSE.txt and xml-apis.LICENSE.txt
now reflect ASL v2.0. This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/lib xercesImpl.jar xercesImpl.README.txt xml-apis.jar xml-apis.README.txt BCEL.jar BCEL.README.txt 
regexp.jar regexp.README.txt runtime.jar runtime.README.txt<BR>
<I>Committer's log entry: </I>
Creation of the xml-xalan/java/lib directory which contains all runtime
library dependencies (jars) required by Xalan Java (interpretive and compiled) runtime
These files have been moved here from xml-xalan/java/bin.<BR>

This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/tools ant.jar ant.LICENSE.txt ant.README.txt antRun antRun.bat java_cup.jar java_cup.LICENSE.txt 
java_cup.README.txt JLex.jar JLex.LICENSE.txt JLex.README.txt stylebook-1.0-b3_xalan-2.jar stylebook-1.0-b3_xalan-2.LICENSE.txt 
stylebook-1.0-b3_xalan-2.README.txt xalan2jdoc.jar xalan2jtaglet.jar<BR>
<I>Committer's log entry: </I>
Creation of the xml-xalan/java/tools directory which contains all build time
tools required by Xalan Java (interpretive and compiled) builds, including
documentation builds.  These tools are not required at runtime.<BR>

These files have been moved here from xml-xalan/java/bin.<BR>

This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java serializer.README.txt xalan.README.txt<BR>
<I>Committer's log entry: </I>
New readme files for the xalan.jar and serializer.jar.
This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java build.bat build.sh build.xml<BR>
<I>Committer's log entry: </I>
Updates to the build scripts and Ant build.xml file to accomodate the
restructuring of the tools and runtime libraries in xml-xalan/java/tools and
xml-xalan/java/lib.    Also changes to build.xml to reflect upcoming
Xalan Java 2.7.0 (version number) changes.<BR>

This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/samples/AppletXMLtoHTML client.html README.html xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java<BR>
<I>Committer's log entry: </I>
Doc changes for Xalan Java 2.7.0 release.
This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xslt 
EnvironmentCheck.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java 
XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xml/serializer Version.src xml-xalan/java/xdocs/sources 
entities.src xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml downloads.xml 
extensions.xml extensionslib.xml faq.xml features.xml getstarted.xml index.xml overview.xml public_apis.xml resources.xml samples.xml 
trax.xml usagepatterns.xml whatsnew.xml xpath_apis.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc README.xslt README.xsltc<BR>
<I>Committer's log entry: </I>
Doc changes for Xalan Java 2.7.0 release.
This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.src xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Doc changes for Xalan Java 2.7.0 release.
This change was reviewed and approved in XALANJ-2170 by Christine Li.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2005/07/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils XMLString.java XMLStringDefault.java xml-xalan/java/src/org/apache/xpath/objects 
XString.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-2176 reviewed by Christine Li (jycli@ca.ibm.com).<BR>

Replaced characters in Javadoc comments that were encoded in ISO-8859-1 with
HTML character entity references.  This avoids any problems with editors, IDEs
or versions of javac that make faulty assumptions about source encodings.<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2005/07/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<BR>
<I>Committer's log entry: </I>
PR: XALANJ-2113<BR>
Submitted by:		 John Gentilin<BR>
Reviewed by:		 Henry Zongaro<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2005/07/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XString.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR>
<I>Committer's log entry: </I>
PR: XALANJ-2114<BR>
Submitted by:		 John Gentilin<BR>
Reviewed by:		 Henry Zongaro<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@ca.ibm.com<I> on </I>2005/07/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java<BR>
<I>Committer's log entry: </I>
Patch for XALANJ-936. Reviewed by Yash Talwar.<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/27<BR>
<I>Modified: </I> xml-xalan/java/bin xml-apis.jar<BR>
<I>Committer's log entry: </I>
Update xml-apis.jar to xml-commons-external-1.3.02 version.<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2005/07/27<BR>
<I>Modified: </I> java/src/org/apache/xalan/lib/sql JNDIConnectionPool.java<BR>
java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl DumpSQL.xsl dbtest-cinfo.xsl<BR>
java/samples/extensions/sql/ext-connection dbtest.xsl ExternalConnection.java<BR>
java/samples/extensions/sql/pquery dbinfo.xml<BR>
java/samples/extensions/sql/streamable cachedNodes.xsl streamNodes.xsl pivot.xsl<BR>
java/samples/extensions/sql GETTING_STARTED.txt runDerby.bat runXalan.sh createdb.sql runDerby.sh runXalan.bat<BR>
<I>Committer's log entry: </I>
PR: XALANJ-2172<BR>
Obtained from: Eric Everman<BR>
Submitted by: Eric Everman / John Gentilin<BR>
Reviewed by: Yash Talwar<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/07/29<BR>
<I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR>
<I>Committer's log entry: </I>
New xercesImpl.jar from the official Xerces-J 2.7.1 release.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/08/03<BR>
<I>Modified: </I> java/src/org/apache/xml/serializer ToTextStream.java Encodings.properties ToHTMLStream.java
ToStream.java EncodingInfo.java ToXMLStream.java Encodings.java<BR>
<I>Committer's log entry: </I>
Committing patch for XALANJ-2087. This is a fix for correctly deciding if a character is in an encoding or not,
so we write it as is, or as an entity.<BR>
The old code had a concept of a maximum character in the encoding, and assumed that all characters less
than that unicode value were in the encoding.  New code uses the underlying Java libarary, but caches results 
for performance.<BR>
Patch was reviewed/approved by Yash Talwar (see XALANJ-2087).<BR><BR></LI>

<LI><I>Committed by </I>mcnamara@apache.org<I> on </I>2005/08/04<BR>
<I>Modified: </I> java/samples/extensions/sql/show-error invalidQuery.xsl invalidPQuery.xsl invalidConn.xsl<BR>
<I>Committer's log entry: </I>
Updates for the SQL samples (part of the fix for XALANJ-2172). Patch provided by John Gentilin and reviewed by Sarah McNamara.<BR><BR></LI>
 
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2005/08/04<BR>
<I>Modified: </I> java/src/org/apache/xml/serializer ToStream.java EncodingInfo.java<BR>
java/src/org/apache/xml/serializer/utils SerializerMessages.java MsgKey.java<BR>
<I>Committer's log entry: </I>
Committing XALANJ-2181. When the requested encoding is not supported by the JDK no
warning is given,... this fix adds an error message.<BR><BR></LI>

<LI><I>Committed by </I>johng@apache.org<I> on </I>2005/08/05<BR>
<I>Modified: </I> java/samples/extensions/sql/ext-connection ExternalConnection.java<BR>
java/xdocs/sources/xalan samples.xml<BR>
java/samples/extensions/sql runDerby.bat runXalan.sh runDerby.sh runXalan.bat runExtConnection.bat runExtConnection.sh<BR>
java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<BR>
<I>Committer's log entry: </I>
PR: XALANJ-2183.<BR><BR></LI>

</UL>
</FONT></TD></TR></TABLE><BR>

<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.6.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/11/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java Translet.java 
xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java 
DOMAdapter.java DOMWSFilter.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java 
xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<BR><BR>
<I>Committer's log entry: </I>
Patch from Morris Kwan (mkwan@ca.ibm.com), reviewed by myself, with a tweak
or two from myself, reviewed by Morris.<BR><BR>

Split namesArray in translet into three arrays:  namesArray, urisArray and
typesArray.<BR><BR>

Previously, entries in the namesArray had to be examined at run-time to
distinguish those that represented elements, from those that represented
attributes (prefixed by an '@'), and those that represented namespace node
names (prefixed by a '?').  In addition, any namespace URI for the element or
attribute was similarly stored in the namesArray entry.  So,
&quot;http://example.org:abc&quot; and &quot;http://example.org:@abc&quot; respectively represented
an element and an attribute named abc in the http://example.org namespace;
&quot;?abc&quot; represented a namespace prefix of abc.<BR><BR>

With this change, the namesArray will have entries for &quot;abc&quot; in all three
cases; the urisArray will contain entries for &quot;http://example.org&quot; for the
element and attribute, and an empty string for the namespace prefix; and the
typesArray will contain the value 1 for the element, 2 for the attribute and 13
for the namespace (which correspond to the DTM constant values for those kinds
of nodes).<BR><BR>

In addition, these values are stored in static arrays in the translet, and
references to those arrays are copied to instance fields in the translet's
constructor, rather than constructing arrays and initializing all their entries
in the constructor each time.<BR><BR>

All this serves to reduce the overhead of initializing a transformation.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/11/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java<BR><BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR><BR>
Just indentation and whitespace changes in the code
(trying to get Apache head and the xslt2.0-compiled branches closer).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/11/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 24278<BR><BR>
Submitted by:	Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/11/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 24423<BR><BR>
Submitted by:	Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/11/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToXMLSAXHandler.java<BR><BR>
<I>Committer's log entry: </I>
Submitted by:	Brian Minchau<BR><BR>
Just indentation and whitespace changes in the code
(trying to get Apache head and the xslt2.0-compiled branches closer).<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/11/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 24958<BR><BR>
Submitted by:	Brian Minchau<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java/samples/TransformThread TransformThread.java foo0.xml foo0.xsl foo1.xml 
foo1.xsl xml-xalan/java/xdocs/sources/xalan samples.xml<BR><BR>
<I>Committer's log entry: </I>
Transform Thread sample. Submitted by  Richard Cao.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
xml-xalan/java/src/org/apache/xalan/xsltc/trax TrAXFilter.java xml-xalan/java/src/org/apache/xml/dtm/ref 
DTMManagerDefault.java xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<BR><BR>
<I>Committer's log entry: </I>
Moved code for caching XMLReader objects from XSLTC's TransformerFactoryImpl to
a new org.apache.xml.utils.XMLReaderManager class.<BR><BR>

It is now the responsibility of the DTMManagerDefault class to request one of
these cached XMLReader objects, so the benefit of reusing an XMLReader is now
conferred upon both XSLTC and Xalan-J Interpretive, as well as upon references
to the document() function.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<BR><BR>
<I>Committer's log entry: </I>
Factored out part of ObjectFactory's createObject method into separately
callable lookUpFactoryClass and lookUpFactoryClassName methods.  This allows
the caller to cache the Class object that provides a service at an appropriate
level, and create new instances of that class at will, rather than going
through the expensive service provider look-up procedure for each and every
object created.<BR><BR></LI>

<LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<BR><BR>
<I>Committer's log entry: </I>
Reflection code to load sun.io.CharToByteConverter is now wrapped in a privileged action. 
This is needed when user code is run without the required permssions.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/bin xml-apis.jar xml-xalan/java/src 
xml-commons-src.tar.gz xml-commons-external-1.2.01-src.tar.gz<BR><BR>
<I>Committer's log entry: </I>
Upgrading to xml-commons-external-1.2.01 release, and moving to new naming
convention for xml-commons source file.<BR><BR></LI>

<LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2003/12/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<BR><BR>
<I>Committer's log entry: </I>
Avoid RuntimeException(Throwable) as it is only available in JDK 1.4.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/08<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java 
xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java ElemWithParam.java<BR><BR>
<I>Committer's log entry: </I>
Applying patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug report
797.<BR><BR>

Added code that checks whether an xsl:param, xsl:variable or xsl:with-param
has both a select attribute and content.  Also, new test case to test for
message in case of xsl:with-param, and updated messages in existing tests for
xsl:param and xsl:variable.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/08<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer NodeSorter.java<BR><BR>
<I>Committer's log entry: </I>
Applying patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug report
5761.  Removed code that caused keys to be ignored when they select an empty set of
values.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/09<BR>
<I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><BR>
<I>Committer's log entry: </I>
Upgrading to version 2.6.0 of Xerces-Java.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><BR>
<I>Committer's log entry: </I>
Added a finally block for SAXSource/StreamSource case in order to ensure that
any XMLReader is released to the XMLReader cache.<BR><BR>

Thanks to Joanne Tong (joannet@ca.ibm.com) for catching this bug when she
reviewed my changes to where caching of XMLReaders was handled, and the DTM
plugability changes for XSLTC.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<BR><BR>
<I>Committer's log entry: </I>
Created a named constant for &quot;META-INF/services&quot; string.<BR><BR></LI>

<LI><I>Committed by </I>rameshm@apache.org<I> on </I>2003/12/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor StopParseException.java StylesheetPIHandler.java 
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java 
xml-xalan/java/src/org/apache/xml/utils StopParseException.java StylesheetPIHandler.java<BR><BR>
<I>Committer's log entry: </I>
Moving classes that are used between Xalan interpretive and XSLTC ( StylesheetPIHandler and StopParseException )  
to xml/utils package . Making the required modifications to accomadate this change.<BR><BR>

Submitted by:	Bhakti Mehta ( bhakti.mehta@sun.com )<BR><BR>
Reviewed by: Ramesh Mandava<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/12/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<BR><BR>
<I>Committer's log entry: </I>
Fixed a bug I injected recently - missing slash between 'META-INF/services' and service name.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/01/04<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<BR><BR>
<I>Committer's log entry: </I>
Made methods in this class public, as is the case in the XPathVisitor class that
it extends.  Having the class be public, but none of the methods public isn't
helpful.<BR><BR>

Contributed by Warwick Burrows (wburrows@us.ibm.com).<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/01/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<BR><BR>
<I>Committer's log entry: </I>
Updating the copyright dates to reflect recent modifications.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/01/08<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR><BR>
<I>Committer's log entry: </I>
Updating build copyright year.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/01/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java ElemTextLiteral.java<BR><BR>
<I>Committer's log entry: </I>
PR: 26169<BR>
Submitted by:	Brian Minchau<BR>
Flushed serialier before emitting trace event in ElemeTextLiteral and
ElemLiteralResult.<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/01/21<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR><BR>
<I>Committer's log entry: </I>
Add TransformThread sample to xalansamples.jar.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 25442.

Record the initial empty sizes of the various vectors in the DTM, and use those
sizes as the defaults in popRewindMark.  The code originally assumed that these
vectors had default sizes of zero, but that's not true in the case of m_data,
which reserves entry zero.<BR><BR>

Reviewed by Christine Li (jycli@ca.ibm.com)
<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 19464.
A reworked patch, move the push statements to the beginning of try block
and added a flag to make sure that there is always something to pop
Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes UnionPathIterator.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 26019. detach location path iterators happens only when allowDetach flag is true.
Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 18351.
xsl:message instruction is allowed inside func:function.
It doesn't construct nodes as part of the result.
Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<BR><BR>
<I>Committer's log entry: </I>
Fix bugzilla bug report 18351.
Set allowDetachToRelease flag to false, which allow caching of the arguments
Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/02/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java<BR><BR>
<I>Committer's log entry: </I>
Fix for Bugzilla Bug 26075.<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/02/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<BR><BR>
<I>Committer's log entry: </I>
Fix for Bugzilla Bug 25416.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<BR><BR>
<I>Committer's log entry: </I>
Applying Joanne Tone's (joannet@ca.ibm.com) patch for
bugzilla bug report 26030.<BR><BR>

Do not suppress Xalan specified extension element namespace, unless they
are declared as extension element namespaces by users.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/11<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 26829.

Modified build.xml to add xalanj2taglet.jar to Xalan source distribution
Contributed by Sarah McNamara (mcnamara@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java
xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java ElemExsltFuncResult.java 
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 24302.

Fields in the object representing an EXSLT function element (ElemExsltFunction)
were being used to store execution state information for references to that
function.  That caused problems with multi-threaded code that used Transformer
objects created from the same Templates object - each Transformer shares the
same instances of ElemExsltFunction.<BR><BR>

The fix was to replace the fields ElemExsltFunction.m_result and
ElemExsltFunction.m_isResultSet with a new ObjectStack field in TransformerImpl
named m_currentFuncResult.<BR><BR>

Also, changed how VariableStack was being updated in the execute method for a
function reference - this change was modelled on equivalent code in
ElemCallTemplate.<BR><BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemParam.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 24302.

Changed condition under which the parent element's m_inArgsSize field is
incremented - that field keeps track of the number of xsl:param children an
element has.  This was only happening for ElemTemplate, but it needs to happen
for ElemExsltFunction, which is a subclass of ElemTemplate, as well.<BR><BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/02/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Sort.java 
xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java NodeSortRecordFactory.java 
xml-xalan/java/src/org/apache/xml/utils LocaleUtility.java<BR><BR>
<I>Committer's log entry: </I>
Fix for Bugzilla Bug 26842.<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/02/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java 
xml-xalan/java/src/org/apache/xml/utils StringComparable.java<BR><BR>
<I>Committer's log entry: </I>
Fix for Bugzilla Bug 1396.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/17<BR>
<I>Modified: </I> Most files in the Xalan Java cvs repository (too many to list) <BR><BR>
<I>Committer's log entry: </I>
New Apache 2.0 license update.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java
xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 26217<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR>
This is a javadoc update only.
Programming instructions don't have a namespace, so make
the PI with no namespace be &quot;xalan-doc-cache-off&quot; rather than
&quot;xalan:doc-cache-off&quot;<BR><BR></LI>


<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/17<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 26217<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR>
Changed a &quot;:&quot; to a &quot;-&quot; in &quot;xalan:doc-cache-off&quot; in the FAQ.
Programming instructions don't have a namespace, so make
the PI with no namespace be &quot;xalan-doc-cache-off&quot; rather than
&quot;xalan:doc-cache-off&quot;. <BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 15140<BR>
Submitted by:	patch submitted by Bruno Dumon (bruno@outerthought.org)<BR>
Reviewed by:	Brian Minchau (minchau@ca.ibm.com)<BR><BR></LI>


<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 24304<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR>
Serialized XML no longer put a new line after the xml header unless indent=&quot;yes&quot;.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 16889<BR>
Submitted by:	Elson Jiang<BR>
Reviewed by:	Brian Minchau<BR>
Fixes ElemForEach TraceListener bug.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 23591<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR>

JAXP transformer.setOutputProperties(null); now not only doesn't
get an exception, it also resets the internal state to flush out any
previously accumulated properties as if the transformer had
just been created.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java 
ToHTMLStream.java ToStream.java ToXMLStream.java<BR><BR>
<I>Committer's log entry: </I>
PR: bugzilla 25816<BR>
Submitted by:	Brian Minchau<BR>
Reviewed by:	Henry Zongaro<BR>
Make default properties returned by serializer factory immutable.<BR><BR></LI>

<LI><I>Committed by </I>minchau@apache.org<I> on </I>2004/02/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<BR><BR>
<I>Committer's log entry: </I>
Javadoc update only.<BR>
PR: bugzilla 26742<BR>
Submitted by:	Brian Minchau<BR><BR>

Changed old invalid URI for xmlns:xsl to the correct one
for XSLT 1.0.  The old value was before the XSLT 1.0 recommendation
and appeared only in a javadoc example.  But it did confuse me when
I tried to run the example in the javadoc.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/20<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils PrefixResolverDefault.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 24979.

Fix for DOM XPath API, any element has an implicit declaration of its own
prefix, which is enforced during namespace serialization.<BR><BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com)<BR><BR></LI>

<LI><I>Committed by </I>igorh@apache.org<I> on </I>2004/02/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java 
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><BR>
<I>Committer's log entry: </I>
Code cleaning and optimization for copy and copy-of.  Discussed with Henry Zongaro.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/22<BR>
<I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/src MANIFEST.MF manifest.xsltc<BR><BR>
<I>Committer's log entry: </I>
Applying patch for Bugzilla bug report 24728 from Sarah McNamara (mcnamara@ca.ibm.com).<BR><BR>

Use Ant's filtering capabilities to place appropriate &quot;created-by&quot; information
into the MANIFEST.MF file of the jar that's being built.<BR><BR></LI>

<LI><I>Committed by </I>jycli@apache.org<I> on </I>2004/02/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<BR><BR>
<I>Committer's log entry: </I>
Fix for bugzilla bug report 22376.

When a TrAXFilter has a parent, should set itself as the EntityResolver,
DTDHandler and ErrorHandler for it's parent to keep the filter chain,
instead of always use the default EntityResolver, DTDHandler and ErrorHandler<BR><BR>

The patch is submitted by Werner Donne (werner.donne@re.be)<BR><BR></LI>

<LI><I>Committed by </I>aruny@apache.org<I> on </I>2004/02/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<BR><BR>
<I>Committer's log entry: </I>
Description : Copying the patch from jaxp-1_3_0-branch  to main trunk.
When there is no mark up inside element content, text should be contained in single TEXT node.
<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java ElemElement.java 
ElemPI.java ElemTemplateElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java 
AttributeSet.java Copy.java DecimalFormatting.java Key.java LiteralElement.java Output.java ProcessingInstruction.java 
Template.java XslAttribute.java XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
ErrorMessages.java ErrorMsg.java Util.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java 
ErrorMessages.java xml-xalan/java/src/org/apache/xml/utils XMLChar.java<BR><BR>
<I>Committer's log entry: </I>
Patch for Bugzilla bug report 24988 from Joanne Tong (joannet@ca.ibm.com)
reviewed by myself.<BR><BR>

Changes required to test whether an attribute value that is required to be
a QName, NCName or whitespace-separated list of QNames actually meets that
requirement.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/24<BR>
<I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><BR>
<I>Committer's log entry: </I>
Upgrading to version 2.6.2 of Xerces-Java.<BR><BR></LI>

<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2004/02/24<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><BR>
<I>Committer's log entry: </I>
Part of patch for bug report 24985.  Ensure that m_size is set to zero in
setStartNode methods of AncestorIterator and TypedAncestorIterator.  The way
getLast() is implemented resulted in setStartNode being called twice in
some circumstances, with the nodes from the second call being included as
additional (though duplicate) ancestors.  Clearing m_size avoids that.<BR><BR>

Reviewed by Morris Kwan (mkwan@ca.ibm.com).<BR><BR></LI>
</UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.5.2</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/06/06<BR>
<I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan Version.java Version.src<BR>
<I>Committer's log entry: </I>
Generate values for Version information from constants in the build script.
(Adapted from xml-commons build script for the resolver.)
New file Version.src (in org.apache.xalan) is copied into Version.java
with version constants from build script plugged in.
Deprecated XSLProcessorVersion class can be removed.
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/06/06<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Generate values for Version information from constants in the build script.
(Adapted from xml-commons build script for the resolver.)
New file Version.src (in org.apache.xalan) is copied into Version.java
with version constants from build script plugged in.
Deprecated XSLProcessorVersion class can be removed.
Also, updated build clean target to delete Version.java, so it will
be regenerated in the next build.
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/06/07<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml overview.xml whatsnew.xml xsltc_usage.xml<BR>
<I>Committer's log entry: </I>
Documentation patch to correct typos, contributed by Glen Mazza 
(glenmazza@yahoo.com).
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/06/07<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml getstarted.xml history.xml index.xml samples.xml trax.xml usagepatterns.xml<BR>
<I>Committer's log entry: </I>
Documentation update: Replaced all occurrences of TRaX with the properly
capitalized TrAX.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<BR>
<I>Committer's log entry: </I>
Speed up CharInfo.isSpecial() by replacing its internal use of 
java.util.BitSet with a more tuned bitset.
Also sped up the common case of this method for ASCII values (0-126) by
saving booleans in a cached array rather than looking them up via their
bits in the bitset.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
Speed up ToStream.characters(char[] , int, int) method by
caching commonly calculated boolean expression for characters in the range (0-126)
in an array in CharInfo.
Also move a whitespace check out of the loop that processes characters and into
a separate loop.  Most of the time this whitspace checking loop will end early and
speed up the other loop which no longer checks for whitespace with every character.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<BR>
<I>Committer's log entry: </I>
Performance improvement of WriterToUTF8Buffered.characters(char[],int,int);
1. Reduced the number of checks for buffer overflow from 2 to 1
   most of the time by nesting the checks.
2. Used local variables for the array reference and count of characters stored in
   the buffer to make the loop faster.
3. Added an additional tight loop for better optimization.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<BR>
<I>Committer's log entry: </I>
Changing firePseudoAttributes() to firePseudoElement() which
is for debugger tooling.  Now both the whole start of the element-tag
e.g.   &lt;abc attr1=&quot;val1&quot; attr2=&quot;val2&quot;
will appear as output that might be written out, rather than
just the attributes.
Submitted by:	Gordon Chiu
Reviewed by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<BR>
<I>Committer's log entry: </I>
Change to use a local variable to hold the reference to m_writer (minor change for performance).
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLStream.java<BR>
<I>Committer's log entry: </I>
Changed references to m_writer to a local writer variable in
a number of places (a minor performance improvement).
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
Made ToStream.characters(char[], int, int) not bail out early if
the length was 0 characters, but do all processing.  This forces
the close of any open start tag.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/06/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR>
<I>Committer's log entry: </I>
Patch from Igor Hersht for Bug 19770.  getFirstAttributeIdentity should check
that argument is not equal to DTM.NULL prior to calling _type2 method - that
method assumes that the argument is not NULL.  Added comments to that effect to
_type2, _parent2, _firstch2, _nextsib2 and _exptype2.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java<BR>
<I>Committer's log entry: </I>
Fix for the general case of bugzilla 20685:
DTMAxisIteratorBase#cloneIterator() was not setting clones to be
non-restartable.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<BR>
<I>Committer's log entry: </I>
Patch contributed by Glen Mazza (glenmazza@yahoo.com):
Fixing a typo in the command line help.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/17<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan commandline.xml samples.xml trax.xml usagepatterns.xml<BR>
<I>Committer's log entry: </I>
Patch contributed by Glen Mazza (glenmazza@yahoo.com) for bugzilla 20625:
Fixing some documentation typos.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java ToUnknownStream.java<BR>
<I>Committer's log entry: </I>
Patch from myself and Brian Minchau (minchau@ca.ibm.com):
Added serializer trace mechanisms to flush trace pseudo characters for
start tag before attributes are added. Fixed serializer trace to generate
correct pseudo characters for html attributes.
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/06/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<BR>
<I>Committer's log entry: </I>
A little code clean up, introduce the SQLQueryParser to handle variables
better.

Added code by Art Welsh to hande the Set/get Feature routine
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/06/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<BR>
<I>Committer's log entry: </I>
Added code by Art Welsh to hande the inline variable parser.
SQL Statements can describe an XSL variable name along with
its type inside the statement instead of using the addParameter methods.
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/06/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLErrorDocument.java<BR>
<I>Committer's log entry: </I>
Added code by Art Welsh to hande full errors, where multiple warning
stattments wll be output into the error document
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/06/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<BR>
<I>Committer's log entry: </I>
Added code by Art Welsh to hande multiple result sets and Callable statements.
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/06/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql QueryParameter.java<BR>
<I>Committer's log entry: </I>
Added code by Art Welsh to handle more of the SQL Types, and other attributes
about the parameter. such as IsOutput and the Name for XSL Variable reference
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToSAXHandler.java ToTextStream.java 
ElemContext.java SerializerBase.java ToHTMLSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<BR>
<I>Committer's log entry: </I>
Moved a number of serializer instance variables into ElemContext,
which is a stack to push/pop such values in unison. This makes
the code clearer and less error prone and probably marginally
(0.001%) faster.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/23<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
Fixing a build issue for JDKs that include XSLTC (specifically, the
JavaCupRedirect class) but not java_cup.jar. Need to put java_cup.jar
and runtime.jar on the bootclasspath.
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/06/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java SimpleResultTreeImpl.java XSLTCDTMManager.java 
xml-xalan/java/src/org/apache/xalan/xsltc/trax XSLTCSource.java xml-xalan/java/src/org/apache/xml/dtm DTM.java 
xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java 
DTMDocumentImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<BR>
<I>Committer's log entry: </I>
Implement a &quot;DTM migration&quot; feature, which allows a DTM that is built with
an old DTMManager to be migrated to a new DTMManager. This is to support
DTM sharing between multiple transformations.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java EmptySerializer.java ExtendedContentHandler.java 
ToHTMLStream.java ToSAXHandler.java ToTextStream.java ToUnknownStream.java ToXMLStream.java<BR>
<I>Committer's log entry: </I>
Added addUniqueAttribute() method for optimization purposes.
The serializer may write out this attribute straight away with little processing becuase the caller guarantees
that the value has these qualities:
1) Value is unique, i.e. will not be changed by other addAttribute() calls.
2) Value is ASCII
3) Value does not contain quot (34) amp (38)  lt (60) gt (62)

Submitted by:	Brian Minchau
Reviewed by:	Morris Kwan
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralAttribute.java LiteralElement.java Output.java 
Stylesheet.java Text.java XslAttribute.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java 
xml-xalan/java/src/org/apache/xml/serializer ElemDesc.java<BR>
<I>Committer's log entry: </I>
Performance improvement for XSLTC

Implement a compiler-assisted serialization feature.
Generate code to make use of the new
addUniqAttribute(String name, String value, int flags)
interface in SerializationHandler. The compiler does
more static analysis on attributes of literal elements
and passes the additional information to the serializer
via a bit-encoded flag.

The additional information includes whether this attribute
is unique, whether its value has bad characters (something
needs to be escaped), whether it is a HTML URI or empty
attribute. If the attribute is unique, the serializer can
write out the attribute right away, without having to
accumulate it in an internal table. If it also does not
contain bad characters, then escaping is not needed.
All these information speeds up the serializer on writing
the attributes out.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java 
ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java SerializerBase.java ToStream.java 
ToTextSAXHandler.java<BR>
<I>Committer's log entry: </I>
Changed code like this:

String s; ...
char[] array = s.toCharArray();

To this:
final int length = s.length();
if (length &gt; m_charsBuff.length)
{
    m_charsBuff = new char[length * 2 + 1];
}
char[] array = m_charsBuff;
// re-use &quot;array&quot; but use &quot;length&quot; for the
// number of characters in the array.

This shows a 2% performance improvement for some
XSLTC/HTML testcases. Of course some transformations
may do betterthan this, and some worse, but all should be
faster.

The performance should also get marginally better for transformations that spend their
time writing out attributes.  It runs marginally faster because
the helper character buffer, m_charsBuffer is re-used rather
than a new one being created each time. 

Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<BR>
<I>Committer's log entry: </I>
Fix for problem in ExpandedNameTable (bugzilla 21087).
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<BR>
<I>Committer's log entry: </I>
Fix problem in EXSLT align function (bugzilla 19890).
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils Trie.java<BR>
<I>Committer's log entry: </I>
Sped up the Trie.get(String) method by about a factor of 2.
This was done by:
1) Not using string.charAt(i) when looping through the characters,
   but rather using string.getChars(0, len, array, 0) and looping over the array.
2) Special casing the lookup in get(String key) for 0,1,2 or more characters
3) Putting the objects into the Trie considering the key as case insensitive at the
   time of putting the objects in, rather than at the time of taking them out.
4) Not using a try/catch in the search loop to test if an
   index is out of bounds, but testing if the character value is less than 128.
Thanks to Gordon Chiu for optimization 1) and Henry Zongaro for 3) and 4).
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath NodeSet.java<BR>
<I>Committer's log entry: </I>
Patch from John Lambe (john.lambe@openjawtech.com) for bugzilla 20819
with some modifications. removeElement() and removeElementAt() were
not removing nodes correctly.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/06/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemIf.java<BR>
<I>Committer's log entry: </I>
Minor change to firing of trace events from xsl:if.

xsl:for-each now fires one trace event plus one for every iteration.
xsl:if should fire one regardless of whether or not the expression
evaluates true or false. Related to discussion on bug 11414.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/06/28<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncCurrent.java<BR>
<I>Committer's log entry: </I>
Applied Igor Hersht's (igorh@ca.ibm.com) patch for Bugzilla bug 10900.  Fixed
up algorithm for determining the result of the current() function to avoid
NullPointerException.
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/07/02<BR>
<I>Modified: </I> xml-xalan/java/src MANIFEST.MF manifest.xsltc xml-xalan/java/xdocs/sources/xalan downloads.xml xml-xalan/java/bin 
java_cup.jar runtime.jar<BR>
<I>Committer's log entry: </I>
Patch from Sarah McNamara (mcnamara@ca.ibm.com)
Moving java_cup.jar and runtime.jar from v0.10j to the latest version: v0.10k.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/07/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes UnionChildIterator.java<BR>
<I>Committer's log entry: </I>
Patch for bugzilla 20909.
Need to fix-up variables for PredicatedNodeTest sub-iterators in
UnionChildIterator. Variables in the m_nodeTests expressions were not
'fixed up'.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/07/02<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<BR>
<I>Committer's log entry: </I>
Adding missing trace events for xsl:with-param. Trace events for
xsl:with-param are fired as the parameter expressions are executed.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/07/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<BR>
<I>Committer's log entry: </I>
Adding missing trace events for ElemWithParam as used in xsl:call-template.
Trace events for xsl:with-param are fired as the expression is executed.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/07/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java ToHTMLStream.java ToStream.java 
ToTextStream.java ToXMLSAXHandler.java<BR>
<I>Committer's log entry: </I>
Patches for bugzilla 20841 and 21039.
PR: 20841, 21039
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/07/07<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<BR>
<I>Committer's log entry: </I>
Applying patch from David Bertoni (bertoni@us.ibm.com) for bug 20920.  The code
for xsl:element was copying all accessible namespace declarations to the
result, but that's something that should only happen for literal result
elements.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/07/08<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Fix for bugzilla 21423
PR: 21423
Bug caused by an optimization where the element name was not
remembered if the HTML tag was empty and the endElement() call
was coming right away.  But XSLTC injected startNamespaceAfterElement() 
in the middle, and it needed the element name, So startElement() records the 
element name in the ElemContext even though the context is soon going away.
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/07/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java<BR>
<I>Committer's log entry: </I>
Reduce the indentation level of end-element tags by 1 level.
PR: bugzilla 21449
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/07/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java WriterToUTF8.java WriterToUTF8Buffered.java<BR>
<I>Committer's log entry: </I>
WriterToUTF8Buffered is now faster because it uses a character
array rather than a series of string.charAt(i) calls.  Other changes 
were also made to this class.  

Performance gains are when writing to an output stream that has UTF-8 encoding.
WriterToUTF8   (not buffered) is deleted.  On analysis, its slow feature was that it
didn't buffer and so it suffered many calls to the underlying OutputStream.  The more work that was done to
this class to speed it up, the more it looked like WriterToUTF8Buffered.
PR: bugzilla 21452

Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/07/10<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java<BR>
<I>Committer's log entry: </I>
Fix for bugzilla 17630 (method keys for extension functions are not unique).
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/07/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<BR>
<I>Committer's log entry: </I>
Fix to WriterToUTF8Buffered to ALWAYS buffer regardless of the
size of the input char array or String.  This is achieved by logically cutting
the input into chunks, each of which will not blow the internal byte buffer,
and calling itself recursively.
PR: bugzilla 21491
Submitted by:	Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2003/07/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<BR>
<I>Committer's log entry: </I>
Fixed NPE bug with inline variables
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/07/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
Fix for bugzilla 21697:
processAttributes always called writeAttrString with m_writer, regardless
of which writer was passed to it. Now always using the passed writer.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/07/21<BR>
<I>Modified: </I> xml-xalan/java KEYS<BR>
<I>Committer's log entry: </I>
Adding my public key.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/07/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates FuncFormatNumb.java<BR>
<I>Committer's log entry: </I>
Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 6155.
Prior to looking up an unnamed decimal format, the FuncFormatNumb.execute
method was calling the stylesheet's getDecimalFormatCount method to save the
cost of the look-up, in the event the result was zero.  The problem is that
that method only returns the number of decimal-formats prior to composition of
multiple stylesheets into a single stylesheet, so it was incorrectly returning
zero always.  Now, the FuncFormatNumb.execute always performs the look-up.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/07/23<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<BR>
<I>Committer's log entry: </I>
Fix for bugzilla 21713: need to check m_allowDetach before detach()ing an
iterator of type DescendantIterator. (Thanks to Morris Kwan for reviewing
this patch.)
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/07/29<BR>
<I>Modified: </I> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<BR>
<I>Committer's log entry: </I>
Updating with latest code from the tck-jaxp_1_2_0 branch of xml-commons

which contains the SAX 2.0.1 code.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR>
<I>Committer's log entry: </I>
Made a couple of improvements to startElement and endElement to cache
m_elemContext in a local variable.  Also, replaced calls to ElemDesc.is with a
single call to ElemDesc.getFlags, and used inline code to check flag settings.

Reviewed by Brian Minchau (minchau@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/01<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ElemDesc.java<BR>
<I>Committer's log entry: </I>
Added a getFlags() method to allow all flags on an ElemDesc object to be
retrieved at once, rather than forcing multiple calls to ElemDesc.is(int).
Also, marked class final.

Reviewed by Brian Minchau (minchau@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/08/05<BR>
<I>Modified: </I> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<BR>
<I>Committer's log entry: </I>
Backing out SAX 2.0.1 xml-apis to the level used in XalanJ 2.5.1.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/08/08<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 21893
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/08/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 19591
Submitted by:	Gordon Chiu
Reviewed by:	Brian Minchau

Fixes a few methods in the ToStream serializer so that it outputs the DOCTYPE
sooner and in the correct location.  Thanks to Bruno Dumon for the nice test case
and thanks to Gordon Chiu for the fix.
- Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/08/12<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Utils.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 21309
Submitted by:	Brian Minchau

Utils.classForName(String classname) still throws a ClassNotFoundException rather than
return null, but it doesn't cache the classname/null combination anymore if the classname 
is not loaded.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/08/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<BR>
<I>Committer's log entry: </I>

PR: bugzilla 18907
Submitted by:	Brian Minchau 
Patch has just been applied to main branch of CVS.

Now ToStream.writeUTF16Surrogate(char c, char ch[], int i, int end) 
return nothing rather than the &quot;i+1&quot; that it had always returned, 
which was a bit confusing. 
This routine always processed 2 input characters and always returned &quot;i+1&quot; so why bother?  

There was no error in returning &quot;i+1&quot; because the situation in which this routine was called were always in a loop:
for (int i=start; i &lt; end; i++) { ... }
so &quot;i&quot; was always incremented before going on to the next iteration. Any i++; after calling writeUTF16Surrogate() now 
means that 2 input characters have been processed, so there is no bug here (never was).  The code is just clearer now.
A bug has been fixed in ToStream.accumDefaultEscape() which used to mis-count how many input characters that it processed.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/08/13<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<BR>
<I>Committer's log entry: </I>


PR: bugzilla 21300	

Submitted by:	Brian Minchau

Reviewed by:	Henry Zongaro

The review was done via a discussion.  Not too many requests are made to

add encoding information to this property file.  Doing one now and then is OK.

A comment was added to the property file showing where to go to get information

on ISO encodings.   



At this point a decision was made to NOT update the information en-mass, but wait for

individual requests.
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/08/14<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xml/serializer 
CharInfo.java Encodings.java OutputPropertiesFactory.java SerializerFactory.java xml-xalan/java/src/org/apache/xpath/functions 
FuncSystemProperty.java xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandler.java ExtensionHandlerGeneral.java 
xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler 
FunctionAvailableCall.java FunctionCall.java Parser.java xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java 
NodeSortRecordFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java TemplatesImpl.java 
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/lib Extensions.java xml-xalan/java/src/org/apache/xalan/lib/sql 
DefaultConnectionPool.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xslt 
EnvironmentCheck.java Process.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java 
xml-xalan/java/src/org/apache/xalan/xsltc/runtime TransletLoader.java xml-xalan/java/src/org/apache/xml/dtm DTMManager.java 
FactoryFinder.java SecuritySupport.java SecuritySupport12.java xml-xalan/java/src/org/apache/xml/dtm/ref CoroutineParser.java 
IncrementalSAXSource_Xerces.java xml-xalan/java/src/org/apache/xml/utils ObjectPool.java ObjectFactory.java SecuritySupport.java 
SecuritySupport12.java xml-xalan/java/src/org/apache/xpath/compiler FuncLoader.java xml-xalan/java/src/org/apache/xml/utils
 ObjectPool.java ObjectFactory.java SecuritySupport.java SecuritySupport12.java<BR>
 <I>Committer's log entry: </I>
Applying Igor Malinin's (igor@widespace.ee) patch for more convenient	(centralized)

classloading.  See bugzilla #16675.
<BR><BR></LI>
<LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/08/14<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan overview.xml trax.xml<BR>
<I>Committer's log entry: </I>
A few minor doc updates.
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/08/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<BR>
<I>Committer's log entry: </I>
Fix a typepo in ExtensionHandlerGeneral.java. It should check for null
instead of nonnull.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/08/25<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTElementProcessor.java xml-xalan/java/src/org/apache/xalan/templates 
Stylesheet.java<BR>
<I>Committer's log entry: </I>
Patch for bugzilla 12441. In forward-compatible mode, an unknown attribute
should be ignored. Currently Xalan throws an exception.

Reviewed by Morris Kwan (mkwan@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<BR>
<I>Committer's log entry: </I>
Removed static method which was reading XSLTInfo.properties file and setting
a system property for each property in the file.  That code was not appropriate
in a secure environment, and wasn't actually needed.  Three of the properties
were being set in support of the XSLT system-property function, but the
implementation of that function didn't actually access the values from the
system properties; the fourth was org.xml.sax.driver, which should be provided
by the user's application or by the parser in a
META-INF/services/org.xml.sax.driver file.

Reviewed with Christine Li (jycli@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<BR>
<I>Committer's log entry: </I>
Removed property for org.xml.sax.driver.  This is something that should be
set by either the user's application code or by a
META-INF/service/org.xml.sax.driver supplied with an XML parser.  Xalan
shouldn't be responsible for setting it.

Reviewed with Christine Li (jycli@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java SecuritySupport.java SecuritySupport12.java<BR>
<I>Committer's log entry: </I>
Changed the way XSLTInfo.properties file was being read to use SecuritySupport
class instead.  Added copies of SecuritySupport classes to this package as well.

Reviewed with Christine Li (jycli@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/26<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils SecuritySupport.java SecuritySupport12.java<BR>
<I>Committer's log entry: </I>
Changed comments that referred to JAXP.  Updated imports to avoid using
wildcards, which is a practice Xalan-J has largely eschewed.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/08/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java<BR>
<I>Committer's log entry: </I>
Applying patch for bug 19297 from Christine Li (jycli@ca.ibm.com).  The
document() function must treat the second argument as a node-set; it should
not permit an argument of any other type.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/08/27<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java 
xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java xml-xalan/java/src/org/apache/xalan/trace ExtensionEvent.java 
TraceListenerEx3.java TraceManager.java<BR><I>Committer's log entry: </I>
Implemented extensions trace mechanism for Java extension calls.
(http://marc.theaimsgroup.com/?l=xalan-dev&amp;m=105715909512185&amp;w=2)

Added new interfaces to allow a trace listener to receive information about
extension functions and elements that are called or executed.

Placed hooks in subclasses of ExtensionHandler prior to and after invoking
the resolved extension method.

Adding missing trace event for ElemExtensionCall.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/08/28<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Patch from Sarah McNamara (mcnamara@ca.ibm.com).

Removing JavaCupRedirect from the jar files. This class is only
needed at build time, and causes build problems when placed on the
bootclasspath (when bootclasspathing xalan.jar under JDK 1.4).

See also (http://marc.theaimsgroup.com/?l=xalan-cvs&amp;m=105637851030164&amp;w=2)
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/09/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<BR>
<I>Committer's log entry: </I>
Applied patch for bug 15090 from Joanne Tong (joannet@ca.ibm.com).  Added code
to handle the case in which a referenced function is not found by reporting an
error.  Previously, a NullPointerException was the result.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/09/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 22777
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/09/03<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 21478	
Submitted by:	Christine Li
Reviewed by:	Brian Minchau

Added message key ER_FUNCTION_NOT_SUPPORTED that
maps to message (in English) &quot;Function not supported!&quot;
so that an error message comes out rather than a crash.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/09/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 22808
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/09/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java xml-xalan/java/xdocs/sources/xalan 
commandline_xsltc.xml faq.xml xsltc_usage.xml<BR>
<I>Committer's log entry: </I>
Updated documentation to describe behaviour of XSLTC when the translet name
specified by the user contains characters that are not permitted as part of a
Java class name.

Reviewed by Sarah McNamara (mcnamara@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/09/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer SerializerSwitcher.java 
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR>
<I>Committer's log entry: </I>
Apply the patch from Richard Cao (richcao@ca.ibm.com) for bug 13082.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/09/11<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<BR>
<I>Committer's log entry: </I>
Updating PrintTraceListener to print information about the recently
added ExtensionEvents.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/09/11<BR>
<I>Modified: </I> xml-xalan/java/samples/Trace Trace.java<BR>
<I>Committer's log entry: </I>
Update Trace sample to allow tracing of extension calls, as well as
optionally read the name of the stylesheet from the command line arguments.
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/09/11<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources/xalan samples.xml usagepatterns.xml<BR>
<I>Committer's log entry: </I>
Documenting the addition of the ExtensionEvent trace event, as well as
the Trace sample changes.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/09/18<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorUnknown.java 
xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java ElemFallback.java ElemUnknown.java<BR>
<I>Committer's log entry: </I>
PR: Bugzilla 23089
Submitted by:	Joanne Tong
Reviewed by:	Brian Minchau

A slight rework of Joanne's patch made by Brian and now commited to CVS.
Also just previosly commited was a testcase, extend06 created by Joanne (thank!).
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/09/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR>
<I>Committer's log entry: </I>
Applying patch from Joanne Tong (joannet@ca.ibm.com) for Bugzilla bug report
16311.  After completing the relevant operations in applyTemplateToNode, the
method was popping various pieces of the context off of stacks.  However, in
the case of the default template rule for text nodes, it was trying to pop
variables off the stack, even though no variables had been pushed onto the
stack.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/09/19<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java<BR>
<I>Committer's log entry: </I>
Applying patch from Joanne Tong (joannet@ca.ibm.com) for Bugzilla bug report
23200.  The XPath syntax for a number is &quot;Digits ('.' Digits?)? | '.' Digits&quot;.
The XPath parser accepted anything accepted by the Java double literal syntax,
including values using &quot;E&quot; exponential notation.  The fix was to guard against
any value using exponential notation.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/09/25<BR>
<I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent xml-xalan/java/xdocs/sources/xalan downloads.xml faq.xml 
history.xml index.xml resources.xml<BR>
<I>Committer's log entry: </I>
PR: bugzilla 23418
Submitted by:	Sarah McNamara
Reviewed by:	Brian Minchau
Updates to java/xdocs so that new webpages point to Apache Mirrors for distribution.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/05<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 22623
Submitted by:	Brian Minchau
Reviewed by:	Henry Zongaro
Tabs in HTML attribute values are now output as charater references.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/06<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java ElemLiteralResult.java 
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xml/serializer 
EmptySerializer.java SerializationHandler.java ToHTMLSAXHandler.java ToSAXHandler.java ToStream.java ToTextStream.java 
ToUnknownStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 21471
Submitted by:	Joanne Tong
Reviewed by:	Brian Minchau
Stop some SAXExceptions from being quietly caught by the serializer.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/10/09<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java SecuritySupport.java SecuritySupport12.java<BR>
<I>Committer's log entry: </I>
Propagated SecuritySupport and SecuritySupport12 classes to serializer package.
Code in Encoding that uses Class.getResource should instead use
SecuritySupport.getResourceAsStream.

Reviewed by Christine Li (jycli@ca.ibm.com)
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 22422
Submitted by: Brian Minchau	
Reviewed by:	Naeim Semsarilar (person reporting the problem)

Get a system and public ID from the properties used to create a serializer
and used them to call appropriate methods on the ToXMLSAXHandler.
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/10/15<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java xml-xalan/java/src/org/apache/xalan/templates 
OutputProperties.java Stylesheet.java xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java 
xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeValueTemplate.java xml-xalan/java/src/org/apache/xml/serializer 
CharInfo.java xml-xalan/java/src/org/apache/xml/utils Hashtree2Node.java<BR>
<I>Committer's log entry: </I>
Fix for bugzilla 22342.
Rename variables with name &quot;enum&quot;. In JDK 1.5, enum is a keyword.
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java<BR>
<I>Committer's log entry: </I>
Apply the patch for bugzilla 14149 from Joanne Tong (joannet@ca.ibm.com).
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 23113
Submitted by:	Brian Minchau
Reviewed by:	Brian Minchau
The reset() in ToStream did not reset a few fields to the original values
that were obtained via &quot; new ToStream() &quot;.  The applied patch fixes that.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 890
Submitted by:	 Richard Cao
Reviewed by:	Brian Minchau
Make sure a non standard property has a key with only one '{' and only one '}'
and that the '{' is first thing in the key.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<BR>
<I>Committer's log entry: </I>
Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 22880.

When input comes from DOMSource, a TreeWalker object walks the DOM input and
fires events to the ContentHandler for the result object, unless the DOM
consists of only an Attribute node.  In the case of an Attribute, the TreeWalker
is not utilized, and just the character data is copied to the result.

As part of the traversal of the DOM, the TreeWalker always fires startDocument
and endDocument events.  The code in the transform(Source,Result) method was
redundantly firing those same events if the Node specified by the DOMSource
was not a Document node.  Instead, that should be left to the TreeWalker.  The
startDocument and endDocument events should only be fired in the transform
method itself to complete the entirely local processing of Attribute nodes.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 7408. Submitrd by  Richard Cao.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java xml-xalan/java/src/org/apache/xalan/templates DecimalFormatProperties.java KeyDeclaration.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 5972. Submitrd by  Richard Cao.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 788. Submitted by  Richard Cao.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java KEYS<BR><I>Committer's log entry: </I>
Added the public key of &quot;Brian James Minchau&quot; to the xml-xalan/java/KEYS file.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xslt Process.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 16512
Submitted by:	Richard Cao
Reviewed by:	Brian Minchau
This bug has existed since the earth cooled (Mid 2000).
Clearly 3 of 4 lines were commented out
// if (x)
//   diagnositcsWriter.print(...)/
// else
   diagnosticsWriter.print(...);
And it was printing a message that we were done, not in the spirit of quiet
success.  Richard Cao's patch is applied, the fourth line is now commented out as well.
<BR><BR></LI>
<LI><I>Committed by </I>igorh@apache.org<I> on </I>2003/10/16<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates TemplateList.java<BR>
<I>Committer's log entry: </I>
Patch for Bugzilla Bug 789. Submitted by  Richard Cao.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/10/17<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<BR>
<I>Committer's log entry: </I>
Patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug 15700.
Added additional check to prevent unrecognised elements from the XSLT namespace
(or even recognized elements, other than xsl:stylesheet and xsl:transform)
from appearing as the outermost element in a stylesheet.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/17<BR>
<I>Modified: </I> xml-xalan/java/bin xalan2jdoc.jar xalan2jtaglet.jar 
xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/templates AVT.java 
AVTPart.java Constants.java ElemApplyImport.java ElemApplyTemplates.java ElemAttribute.java 
ElemAttributeSet.java ElemCallTemplate.java ElemComment.java ElemCopy.java ElemCopyOf.java 
ElemElement.java ElemExtensionCall.java ElemExtensionScript.java ElemFallback.java 
ElemForEach.java ElemIf.java ElemLiteralResult.java ElemParam.java ElemSort.java 
ElemTemplateElement.java ElemText.java ElemWhen.java ElemWithParam.java FuncDocument.java 
KeyDeclaration.java StylesheetRoot.java AVTPartSimple.java AVTPartXPath.java 
DecimalFormatProperties.java ElemChoose.java ElemEmpty.java ElemExsltFunction.java 
ElemExtensionDecl.java ElemMessage.java ElemNumber.java ElemOtherwise.java ElemPI.java 
ElemTemplate.java ElemTextLiteral.java ElemUnknown.java ElemUse.java ElemValueOf.java 
ElemVariable.java FuncFormatNumb.java FuncKey.java TemplateList.java 
xml-xalan/java/src/org/apache/xml/dtm/ref CoroutineManager.java DTMDefaultBase.java 
DTMDocumentImpl.java DTMNamedNodeMap.java DTMNodeProxy.java DTMTreeWalker.java 
xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java ChildIterator.java 
ChildTestIterator.java LocPathIterator.java OneStepIteratorForward.java WalkingIterator.java 
ContextNodeList.java DescendantIterator.java IteratorPool.java OneStepIterator.java 
RTFIterator.java SelfIteratorNoPredicate.java SubContextList.java UnionPathIterator.java 
WalkerFactory.java WalkingIteratorSorted.java xml-xalan/java/src/org/apache/xalan/res 
XSLMessages.java XSLTErrorResources_en.java xml-xalan/java/src/org/apache/xalan/transformer 
ClonerToResultTree.java Counter.java CountersTable.java DecimalToRoman.java KeyIterator.java 
KeyRefIterator.java KeyTable.java MsgMgr.java NodeSorter.java NodeSortKey.java 
NumeratorFormatter.java ResultNameSpace.java TransformerImpl.java TreeWalker2Result.java 
XSLInfiniteLoopException.java xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java 
ChildIterator.java ChildTestIterator.java LocPathIterator.java OneStepIteratorForward.java 
WalkingIterator.java ContextNodeList.java DescendantIterator.java IteratorPool.java 
OneStepIterator.java RTFIterator.java SelfIteratorNoPredicate.java SubContextList.java 
UnionPathIterator.java WalkerFactory.java WalkingIteratorSorted.java 
xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java ExsltDatetime.java ExsltDynamic.java 
ExsltMath.java ExsltSets.java ExsltStrings.java Extensions.java 
xml-xalan/java/src/org/apache/xpath Arg.java Expression.java FoundIndex.java NodeSet.java 
NodeSetDTM.java SourceTree.java VariableStack.java XPath.java XPathContext.java 
XPathException.java XPathFactory.java XPathProcessorException.java 
xml-xalan/java/src/org/apache/xalan/trace EndSelectionEvent.java GenerateEvent.java 
PrintTraceListener.java SelectionEvent.java TraceListener.java TraceListenerEx.java 
TraceListenerEx2.java TraceListenerEx3.java TracerEvent.java 
xml-xalan/java/src/org/apache/xpath/functions FuncBoolean.java FuncCeiling.java 
FuncConcat.java FuncContains.java FuncCount.java FuncCurrent.java FuncDoclocation.java 
FuncExtElementAvailable.java FuncExtFunction.java FuncExtFunctionAvailable.java 
FuncFalse.java FuncFloor.java FuncGenerateId.java FuncId.java FuncLang.java FuncLast.java 
FuncLocalPart.java FuncNamespace.java FuncNormalizeSpace.java FuncNot.java FuncNumber.java 
FuncPosition.java FuncQname.java FuncRound.java FuncStartsWith.java FuncString.java 
FuncStringLength.java FuncSubstring.java FuncSubstringAfter.java FuncSubstringBefore.java 
FuncSum.java FuncSystemProperty.java Function.java Function2Args.java Function3Args.java 
FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java FuncTranslate.java 
FuncTrue.java FuncUnparsedEntityURI.java WrongNumberArgsException.java 
xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_ca.java 
XPATHErrorResources_cs.java XPATHErrorResources_de.java XPATHErrorResources_en.java 
XPATHErrorResources_fr.java XPATHErrorResources_hu.java XPATHErrorResources_it.java 
XPATHErrorResources_ja.java XPATHErrorResources_ko.java XPATHErrorResources_pl.java 
XPATHErrorResources_pt_BR.java XPATHErrorResources_sk.java XPATHErrorResources_sv.java 
XPATHErrorResources_zh_TW.java XPATHMessages.java XPATHErrorResources_es.java 
XPATHErrorResources_ru.java XPATHErrorResources_tr.java XPATHErrorResources_zh_CN.java 
XPATHErrorResources.java xml-xalan/java/src/org/apache/xml/utils AttList.java 
BoolStack.java CharKey.java Constants.java DefaultErrorHandler.java DOM2Helper.java 
DOMBuilder.java DOMHelper.java ElemDesc.java Hashtree2Node.java IntStack.java IntVector.java 
ListingErrorHandler.java MutableAttrListImpl.java NameSpace.java NodeVector.java NSInfo.java 
ObjectPool.java ObjectStack.java ObjectVector.java PrefixResolver.java 
PrefixResolverDefault.java QName.java RawCharacterHandler.java StringBufferPool.java 
StringToIntTable.java StringToStringTable.java StringToStringTableVector.java 
StringVector.java SuballocatedByteVector.java SuballocatedIntVector.java SystemIDResolver.java 
TreeWalker.java Trie.java UnImplNode.java WrongParserException.java 
XMLCharacterRecognizer.java xml-xalan/java/src/org/apache/xpath/res 
XPATHErrorResources_ca.java XPATHErrorResources_cs.java XPATHErrorResources_de.java 
XPATHErrorResources_en.java XPATHErrorResources_fr.java XPATHErrorResources_hu.java 
XPATHErrorResources_it.java XPATHErrorResources_ja.java XPATHErrorResources_ko.java 
XPATHErrorResources_pl.java XPATHErrorResources_pt_BR.java XPATHErrorResources_sk.java 
XPATHErrorResources_sv.java XPATHErrorResources_zh_TW.java XPATHMessages.java 
XPATHErrorResources_es.java XPATHErrorResources_ru.java XPATHErrorResources_tr.java 
XPATHErrorResources_zh_CN.java XPATHErrorResources.java 
xml-xalan/java/src/org/apache/xpath/patterns FunctionPattern.java NodeTest.java 
StepPattern.java UnionPattern.java xml-xalan/java/src/org/apache/xml/res 
XMLErrorResources_en.java XMLMessages.java xml-xalan/java/src/org/apache/xml/utils/res 
XResourceBundle.java XResourceBundleBase.java XResources_cy.java XResources_de.java 
XResources_el.java XResources_en.java XResources_es.java XResources_fr.java XResources_he.java 
XResources_hy.java XResources_it.java XResources_ja_JP_A.java XResources_ja_JP_HA.java 
XResources_ja_JP_HI.java XResources_ja_JP_I.java XResources_ka.java XResources_ko.java 
XResources_sv.java XResources_zh_CN.java XResources_zh_TW.java 
xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java 
XPathNamespaceImpl.java XPathNSResolverImpl.java XPathResultImpl.java 
xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandler.java 
ExtensionHandlerGeneral.java ExtensionHandlerJava.java ExtensionHandlerJavaClass.java 
ExtensionHandlerJavaPackage.java ExtensionsTable.java XSLProcessorContext.java 
xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java 
xml-xalan/java/src/org/apache/xml/utils/synthetic/reflection Constructor.java 
EntryPoint.java Field.java Member.java Method.java xml-xalan/java/src/org/apache/xpath/objects 
XBoolean.java XBooleanStatic.java XMLStringFactoryImpl.java XNodeSet.java XNull.java 
XNumber.java XObject.java XRTreeFrag.java XString.java 
xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java 
ProcessorExsltFuncResult.java ProcessorExsltFunction.java ProcessorLRE.java 
ProcessorStylesheetDoc.java ProcessorUnknown.java StopParseException.java 
StylesheetHandler.java XSLProcessorVersion.java xml-xalan/java/src/org/apache/xpath/compiler 
Compiler.java FuncLoader.java Keywords.java OpCodes.java OpMapVector.java XPathParser.java 
xml-xalan/java/src/org/apache/xpath/operations Variable.java 
xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/client 
XSLTProcessorApplet.java xml-xalan/java/src/org/apache/xalan/xslt Process.java 
xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMDOMException.java 
xml-xalan/java/src/org/apache/xml/utils/synthetic Class.java JavaUtils.java 
SynthesisException.java TestDriver.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 20572 (javadoc generation failing under JDK 1.4)
Submitted by:	Richard Cao
Reviewed by:	Brian Minchau
Did a further review and tested javadoc generation under JDK 1.4.1 and under 1.2.2
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/10/20<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<BR>
<I>Committer's log entry: </I>
Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 19823.
Added code to use a Hashtable to keep track of parameters set for an applet.
The old implementation allowed just one parameter to be specified for the
transformation.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/21<BR>
<I>Modified: </I> xml-xalan/java build.xml<BR>
<I>Committer's log entry: </I>
PR: bugzilla 20572
Submitted by:	Richard Cao
Reviewed by:	Brian Minchau
Richard added extra -breakiterator option when building javadoc for SDK 1.4 or higher
to get rid of warning messaes when doing the build.
This is a compatibility option.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 23812
Submitted by:	Brian Minchau
Reviewed by:	Henry Zongaro
Fixes incorrect handling of CDATA by a ToXMLSAXHandler. 
The CDATA was defined by calls to the LexicalHandler methods:
startCDATA()
endCDATA()
Henry would rather have a new flushPending() method which does not
flush a generated endCDATA() call, but I copied the contents of flushPending()
to the top of ToXMLSAXHandler.character(char[] chars, int off, int len)
anyways.  I didn't want to put a new flushPending() method on a SerializationHandler
interface.   I'm not completely happy with either choice so I left it as-was  - bjm
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/21<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR>
<I>Committer's log entry: </I>
PR: bugzilla 7205
Submitted by:	Richard Cao
Reviewed by:	Brian Minchau/Henry Zongaro
Do NOT  have ToXMLSAXHandler always mirror namespaces given via
startPrefixMapping(&quot;prefix1&quot;, &quot;uri1&quot;)
 as attribute values of the form xmlns:prefix1=&quot;uri1&quot;
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java
xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java ExsltCommon.java 
ExsltDatetime.java xml-xalan/java/src/org/apache/xalan/lib/sql ConnectionPool.java 
ConnectionPoolManager.java DefaultConnectionPool.java DTMDocument.java ObjectArray.java 
PooledConnection.java QueryParameter.java XConnection.java 
xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java 
xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java 
ElemTemplateElement.java FuncDocument.java OutputProperties.java
xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java 
EmptySerializer.java NamespaceMappings.java ToHTMLSAXHandler.java ToHTMLStream.java 
ToStream.java ToTextSAXHandler.java ToUnknownStream.java ToXMLSAXHandler.java 
ToXMLStream.java<BR><I>Committer's log entry: </I>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java 
ChildIterator.java 
ChildTestIterator.java DescendantIterator.java LocPathIterator.java NodeSequence.java 
OneStepIterator.java OneStepIteratorForward.java SelfIteratorNoPredicate.java 
UnionPathIterator.java WalkingIterator.java
xml-xalan/java/src/org/apache/xalan/transformer package.html TransformerIdentityImpl.java 
TransformerImpl.java XalanProperties.java XalanTransformState.java
xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java DTMNodeIterator.java 
DTMNodeProxy.java<BR><I>Committer's log entry: </I>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/22<BR>
<I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java<BR>
<I>Committer's log entry: </I>
Fix to make SerializerFactory return a serializer even if the only
property specified is method=&quot;xml&quot;
PR: bugzilla 22025
Submitted by:	Brian Minchau
Reviewed by:	John Meyer (bug originator)
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/23<BR>
<I>Modified: </I> java/src/org/apache/xml/serializer Encodings.properties ToTextStream.java
java/src/org/apache/xml/res XMLErrorResources.java<BR>
<I>Committer's log entry: </I>
patch to emit emit error message for method=&quot;text&quot; when output character not valid in the 
output encoding.   
PR: bug 795
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/23<BR>
<I>Modified: </I> java/src/org/apache/xalan/templates ElemLiteralResult.java
ElemUse.java<BR>
<I>Committer's log entry: </I>
Error message for testcase attribseterr07
PR: bug 782
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/23<BR>
<I>Modified: </I> java/src/org/apache/xml/serializer CharInfo.java
ToHTMLStream.java ToXMLStream.java ToStream.java<BR>
<I>Committer's log entry: </I>
PR: bug 24025
Submitted by:		 Brian Minchau
Reviewed by:		 Henry Zongaro
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/23<BR>
<I>Modified: </I> java/src/org/apache/xml/utils QName.java
java/src/org/apache/xml/res XMLErrorResources.java<BR>
<I>Committer's log entry: </I>
Shouldn't be able to call a template with no prefix:
PR: bug 3415
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/10/23<BR>
<I>Modified: </I> ava/src/org/apache/xalan/lib PipeDocument.java<BR>
<I>Committer's log entry: </I>
PipeDocument was not calling out.close() when done with the 
FileOutputStream &quot;out&quot;.
PR: bug 24013
Submitted by:		 Pierre Chardin (bug reporter)
Reviewed by:		 Brian Minchau
<BR><BR></LI>
</UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.5.1</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>
Applying Sarah McNamara's (mcnamara@ca.ibm.com) patches to update
version numbers in XalanJ.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/10<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml history.xml index.xml readme.xml resources.xml samples.xml whatsnew.xml xsltc_history.xml xsltc_usage.xml xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java commits.xml build.xml xml-xalan/java/xdocs/style/stylesheets done.xsl xml-xalan/java/xdocs xml-site-style.tar.gz<BR><I>Committer's log entry: </I>
Sarah McNamara's (mcnamara@ca.ibm.co) documentation patch.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<BR><I>Committer's log entry: </I>
Added comments before a couple of messages to assist translators, and fixed a typo in the class name mentioned in a message.
<BR><BR></LI>
<LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java EmptyIterator.java<BR><I>Committer's log entry: </I>
Applying patches from Igor Hersht (igorh@ca.ibm.com) for bug 15200 and
bug 18585.

Pulled EmptyIterator class out of SAXImpl to allow for more widespread use.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/23<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><I>Committer's log entry: </I>
New FAQ from Christine Li (jycli@ca.ibm.com) for using Xalan in Tomcat
with JDK 1.4.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2003/04/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>
Fix for array out of bounds exception in findNamespaceContext, where the index was allowed to go to -1.  This is a blind fix, and someone who knows the code better should take a look to see what they think.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2003/04/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<BR><I>Committer's log entry: </I>
Made it a static error in compose(...) if a reference is made to a non-existent template.  Note this might cause some existing stylesheets to not work, since the error would never have been flagged if the code was not run.  Note the old code was marked for %REVIEW%, so I don't think this was ever resolved.  I think it's clear that this should be a static error.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/04/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>
Change in comments only. Deleted old commented out (and incorrect)
double-checked locking code.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<BR><I>Committer's log entry: </I>
Duplicate trace was event being issued.  One from ElemElement and then 
from its parent class: ElemUse.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Dropping properties files that contain English messages.
xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.properties has been
replaced by xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.java.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Dropping properties files that contain English messages.
xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.properties has been
replaced by xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.java.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/04/30<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java Extensions.java xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<BR><I>Committer's log entry: </I>
Changed incorrect double-check locking code with an inner class
with a static field.  Synchronization is covered by the class loader.
Loading happens when first referenced. A cool, efficient, safe 
way to lazy load a static field.

PR: bugzilla 19029
Obtained from: Henry Zongaro
Submitted by: Brian Minchau
Reviewed by: Henry Zongaro
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<BR><I>Committer's log entry: </I>
Cleared two helper fields, m_elementURI and m_elementLocalName in endElement()
Both of these fields are out of scope after the element is ended
so it is correct to null them out at endElement()

PR: bugzilla 19388
Obtained from: bruno@outerthought.org (Bruno Dumon) and Brian Minchau
Submitted by: bruno@outerthought.org (Bruno Dumon)
Reviewed by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR><I>Committer's log entry: </I>
endDTD() for ToHTMLStream now does nothing. It used to incorrectly
write out some closing characters, but that was already hanled in startDocumentIntermal()

PR: 19587
Submitted by: bruno@outerthought.org (Bruno Dumon)
Reviewed by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR><I>Committer's log entry: </I>
Performance fix for double buffering.  Don't use WriterToUTF8Buffered if the 
writer class is &quot;BufferedServletOutputStream&quot;.

PR: bugzilla 19474
Submitted by: Brian Minchau
Reviewed by: Ilene Seelemann
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java<BR><I>Committer's log entry: </I>
Fix for flushing occuring in trace code even when tracing is not being done.

PR: bugzilla 19471
Submitted by: Brian Minchau
Reviewed by: Ilene Seelemann
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/05/07<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<BR><I>Committer's log entry: </I>
Serializer properties files have moved to the new org.apache.xml.serializer
package.  Corrected part of documentation that didn't yet reflect that.
<BR><BR></LI>
<LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToXMLSAXHandler.java ToXMLStream.java<BR><I>Committer's log entry: </I>
Guarded the fireXXX(); calls to trace events with if (m_tracer != null),
strictly for performance reasons. This should run faster than making the call and then checking.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><I>Committer's log entry: </I>
Title of FAQ for Xerces version read, &quot;Which version of Xerces-J 2.4.0 should I
use?&quot; answering it's own question.  Fixed that to make for a more suspenseful
read.
<BR><BR></LI><LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorTemplateElem.java xml-xalan/java/src/org/apache/xalan/templates ElemAttributeSet.java ElemElement.java ElemLiteralResult.java ElemTemplateElement.java ElemUse.java<BR><I>Committer's log entry: </I>
Some Trace-related fixes: Two trace events were being fired for ElemCopy,
and for templates elements derived from ElemUse the trace end event was
being fired before child templates were executed. Also saved locator
information for the end tag of stylesheet elements.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<BR><I>Committer's log entry: </I>
See bugzilla # 19900 for a laundry list of small performance 
enhancements.

PR: bugzilla 19900
Submitted by: Brian Minchau
Reviewed by: Henry Zongaro
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/15<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer Encodings.java OutputPropertiesFactory.java SerializerFactory.java Utils.java<BR><I>Committer's log entry: </I>
Performance enhancement. Cache the loading of classes via Class.forName(classname)
 in the serializer.  The same class is otherwise loaded over and over with each request
to a server, e.g. in a servlet. 
PR: bugzilla # 19960
Submitted by: Brian Minchau
Reviewed by: Morris Kwan
<BR><BR></LI><LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/05/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java<BR><I>Committer's log entry: </I>
Adding missing trace events for the func:result element.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<BR><I>Committer's log entry: </I>
The HTML serializer should do nothing with the methods on the 
DeclHandler interface, so they are now defined with empty
bodies.  Also the comment() method does nothing when in a
DTD.
PR: bugzilla 19640
Submitted by: Bruno Dumon (bruno@outerthought.org)
Reviewed by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/05/22<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><I>Committer's log entry: </I>
Added a new FAQ to describe a situation some users have encountered of late
using XSLTC with JDK 1.4.
Contributed by Christine Li (jycli@ca.ibm.com) with some editorial input from
myself.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/05/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<BR><I>Committer's log entry: </I>
Fix a compatibility problem when using the old &quot;http://xml.apache.org/xslt&quot;
namespace with extension functions in org.apache.xalan.xslt.Extensions.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/05/26<BR><I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/xdocs/sources/xalan builds.xml downloads.xml resources.xml xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>
Patch from Sarah McNamara (mcnamara@ca.ibm.com) which improves documentation
about packaging and adds support for building and testing an alternate 
binary distribution which provides xalan-interpretive and xsltc in separate jars.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
One line fix to get a lexical handler, was casting the wrong reference.
PR: bugzilla 20237
Submitted by: Bernard D'Have (bdhaveos@wanadoo.be)
Reviewed by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/05/27<BR><I>Modified: </I> xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<BR><I>Committer's log entry: </I>
Update to the SQL extension sample from Christine Li (jycli@ca.ibm.com).
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/05/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
Applying Christine Li's (jycli@ca.ibm.com) fix for bug 19522.  When a
SerializationHandler object is created for Xalan-J Interpretive, it needs to
be informed which Transformer object is associated with the serialization.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java<BR><I>Committer's log entry: </I>
AttributesImplSerializer now uses the older (faster) org.xml.sax.helpers.AttributesImpl
up until about 12 attributes and switches over to using a Hashtable for faster lookup
of attributes, avoiding an order N*N performance problem for large
number of attributes, but faster for lower number of attributes.
PR: bugzilla 20273
Submitted by: Brian Minchau
Reviewed by: Henry Zongaro
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/05/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java xml-xalan/java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>
Patch from Christine Li (jycli@ca.ibm.com) for bugzilla #18926.

Variables weren't being cleared from stack between calls to func:function.
<BR><BR></LI>
<LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/05/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources_ca.java XSLTErrorResources_cs.java XSLTErrorResources_de.java XSLTErrorResources_es.java XSLTErrorResources_fr.java XSLTErrorResources_hu.java XSLTErrorResources_it.java XSLTErrorResources_ja.java XSLTErrorResources_ko.java XSLTErrorResources_pl.java XSLTErrorResources_pt_BR.java XSLTErrorResources_ru.java XSLTErrorResources_sk.java XSLTErrorResources_tr.java XSLTErrorResources_zh_CN.java XSLTErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_ca.java ErrorMessages_cs.java ErrorMessages_de.java ErrorMessages_es.java ErrorMessages_fr.java ErrorMessages_hu.java ErrorMessages_it.java ErrorMessages_ja.java ErrorMessages_ko.java ErrorMessages_pl.java ErrorMessages_pt_BR.java ErrorMessages_ru.java ErrorMessages_sk.java ErrorMessages_tr.java ErrorMessages_zh_CN.java ErrorMessages_zh_TW.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages_ca.java ErrorMessages_cs.java ErrorMessages_de.java ErrorMessages_es.java ErrorMessages_fr.java ErrorMessages_hu.java ErrorMessages_it.java ErrorMessages_ja.java ErrorMessages_ko.java ErrorMessages_pl.java ErrorMessages_pt_BR.java ErrorMessages_ru.java ErrorMessages_sk.java ErrorMessages_tr.java ErrorMessages_zh_CN.java ErrorMessages_zh_TW.java xml-xalan/java/src/org/apache/xml/res XMLErrorResources_ca.java XMLErrorResources_cs.java XMLErrorResources_de.java XMLErrorResources_es.java XMLErrorResources_fr.java XMLErrorResources_hu.java XMLErrorResources_it.java XMLErrorResources_ja.java XMLErrorResources_ko.java XMLErrorResources_pl.java XMLErrorResources_pt_BR.java XMLErrorResources_ru.java XMLErrorResources_sk.java XMLErrorResources_tr.java XMLErrorResources_zh_CN.java XMLErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_ca.java XPATHErrorResources_cs.java XPATHErrorResources_de.java XPATHErrorResources_es.java XPATHErrorResources_fr.java XPATHErrorResources_hu.java XPATHErrorResources_it.java XPATHErrorResources_ja.java XPATHErrorResources_ko.java XPATHErrorResources_pl.java XPATHErrorResources_pt_BR.java XPATHErrorResources_ru.java XPATHErrorResources_sk.java XPATHErrorResources_tr.java XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java<BR><I>Committer's log entry: </I>
Checked in localized messages for Xalan and XSLTC contributed by IBM.
New Locale support includes ca, cs, hu, pl, pt_BR, ru, sk and tr.
The old messages are also updated with translations for newly added
English messages.
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils BoolStack.java<BR><I>Committer's log entry: </I>
Added a clear() method to clear a BoolStack, so that such a 
stack can be re-used without the need to create a new one
(for performance).
Submitted by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java SerializerBase.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<BR><I>Committer's log entry: </I>
Support for reset() for the stream serializers and for ToXMLSAXHandler.
These serializers can now be reset and re-used rather than creating a new one.
A reset() takes about 1/2 the time of creating a new one.

Submitted by: Brian Minchau
<BR><BR></LI><LI><I>Committed by </I>minchau@apache.org<I> on </I>2003/05/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<BR><I>Committer's log entry: </I>
Support for a ToHTMLSAXHandler serializer to be reset() and re-used.
Submitted by: Brian Minchau
<BR><BR></LI>
<LI><I>Committed by </I>grchiu@apache.org<I> on </I>2003/05/28<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><I>Committer's log entry: </I>
Contributed by Christine Li (jycli@ca.ibm.com).
Modified FAQ entry regarding bootclasspath; the class path separator is not
colon for all systems.
<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.5.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Small improvement to SAXImpl.copyElement().
Move the getStringValue() method from SAXImpl to SAX2DTM2.
Remove the SAXImpl.stringValueAux() method.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/02/25<BR><I>Modified: </I> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<BR><I>Committer's log entry: </I>
Update to latest version of xml-apis.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement to DescendantIterator. If _startNode is the root node, do
not need to do the isDescendant() check.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Set the nextsib element of an attribute or namespace node to -1.
This makes the logic in the iterators simpler and easier to
maintain.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql DTMDocument.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AttributeList.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMStringPool.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java xml-xalan/java/src/org/apache/xml/utils SuballocatedIntVector.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement for RTF. These changes improve the performance
for stylesheets which create and throw away many small RTFs.

Make the sizes of all internal storage units used by SAXImpl configurable.
These include SuballocatedIntVector, DTMStringPool, IntStack and FastStringBuffer.
The chain size of DTMStringPool and the number of blocks in SuballocatedIntVector
can now be passed in the constructor. These sizes are set to smaller values in
the RTF case.

The default RTF size is changed to 32. There is also a change in the XSLTC
AttributeList class to use on-demand memory allocation for the internal vectors.
The vectors are only allocated when there is an attribute.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Small improvement to DescendantIterator and TypedDescendantIterator.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/02/28<BR><I>Modified: </I> xml-xalan/java/samples/extensions/sql/streamable cachedNodes.xsl pivot.xsl xml-xalan/java/xdocs/sources/xalan samples.xml xml-xalan/java/samples/CompiledApplet menu.html README.applet xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<BR><I>Committer's log entry: </I>
More sample and documentation updates from Christine Li (jycli@ca.ibm.com).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<BR><I>Committer's log entry: </I>
Add a getTransformer() interface to TrAXFilter. This is a user requested
feature. This interface can be used by the UseXMLFilters samples to
set the output properties correctly.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Do not create the previous sibling array for XSLTC. This array is not used
in XSLTC's SAXImpl. Creating it is a waste of time.

We add a boolean flag to the constructors of DTMDefaultBase and its
subclasses to indicate whether the previous sibling array should be created.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/02/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>
Correct an error. The DTMDefaultBase.getPreviousSibling() interface
returns a node handle instead of a node identity.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/02/28<BR><I>Modified: </I> xml-xalan/java/samples/CompiledEJB bottom_frame.html index.html README.ejb top_frame.html xml-xalan/java/samples/CompiledServlet CompileServlet.java README.servlet<BR><I>Committer's log entry: </I>
Patches for samples from Christine Li (jycli@ca.ibm.com)
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<BR><I>Committer's log entry: </I>
Propagate the change from head branch to XSLTC_DTM.
Add a new getTransformer() interface to TrAXFilter.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<BR><I>Committer's log entry: </I>
Add a new getTransformer() interface to TrAXFilter.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java NameBase.java Stylesheet.java xpath.cup XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java DocumentCache.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java XSLTCSource.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work

Implement a feature for on-demand building of the ID index table.

Before this change, the SAX2DTM2 class always builds an ID index
hashtable by comparing the name of every attribute with &quot;id&quot;. Now
we maintain a flag _hasIdCall in AbstractTranslet to indicate
whether the translet has id function calls. The value of this flag
is compiled into the translet from the Stylesheet class. The Stylesheet
class also has an _hasIdCall flag, which is set by the XPath parser.

When a SAXImpl object is created, the _hasIdCall flag is passed in from the
Translet. Now the id index table is only built when the stylesheet makes
use of the id function.

Also fix a bug in the NameBase class for using an incorrect class name
(org.apache.xml.dtm.ref.DTMAxisIterator should be org.apache.xml.dtm.DTMAxisIterator).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom AnyNodeCounter.java DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement for xsl:number. Introduce an optimized version of
getExpandedTypeID() in SAX2DTM2.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMWSFilter.java NodeSortRecord.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement for xsl:strip-space by caching the DTM that is used last time.
Better Collator handling in NodeSortRecord.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Save the values of attribute, namespace, comment and PI nodes
in a plain Vector instead of in DTMStringPool. Saving a String
in DTMStringPool involves a hash calculation. These values
are unlikely to be equal. Saving them in a plain Vector has a
lower cost than saving them in DTMStringPool. Only prefixed QNames
are saved in DTMStringPool after this change.

Need to make changes in a few interfaces to accommadate this change.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Small improvement in FastStringBuffer.sendSAXCharacters() when the whole
piece of text is in one chunk.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/14<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Small improvement in SAX2DTM2.getStringValueX() and dispatchCharacterEvents()
by saving one local variable.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/14<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom CollatorFactoryBase.java SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Save the offset and length of a Text node in a bitwise encoded value (10
bits for length and 21 bits for offset) if they are within certain limits.
Before this change, we need 3 SuballocatedIntVector calls to get the offset
and length information. Now we only need one SuballocatedIntVector call,
one bit AND &amp; one SHIFT. Bit AND and SHIFT are faster than accessing a
SuballocatedIntVector.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>
Fix a bug for testcase axes129.
DTMDefaultBase.getFirstNamespaceNode() should return NULL when
the given node is not an element. axes129 passed in both
Xalan and XSLTC_DTM after this change.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2003/03/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<BR><I>Committer's log entry: </I>
Oops! Old bug, just noticed -- we forgot to override RootTraverser's typed first().
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom NthIterator.java xml-xalan/java/src/org/apache/xml/dtm DTMAxisIterator.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement for step[n]. Introduce a new interface getNodeByPosition(int position)
in DTMAxisIterator, which is used by the NthIterator. The default implementation
is in DTMAxisIteratorBase. The subclasses can override this interface to provide
a faster customized implementation.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Introduce a copyAttribute() method in SAXImpl to speed up
attribute copying.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<BR><I>Committer's log entry: </I>
XSLTC_DTM performance work
Improvement in DTM building. Make the code more efficient
in a few expensive interfaces.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/03/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<BR><I>Committer's log entry: </I>
Fix a bug in XSLTC_DTM.
Change the name of the optimized getExpandedTypeID method to getgetExpandedTypeID2.
The old one can be used during DTM building, while the new one is only
used in document traversal.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/03/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncDocument.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncDocument.java<BR><I>Committer's log entry: </I>
Committing Christine Li's (jycli@ca.ibm.com) patch for bugzilla #18210.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.ref.sax2dtm.
Add new file SAX2DTM2.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.ref.dom2dtm.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMAxisIterator.java DTMManager.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java DTMAxisIterNodeList.java DTMChildIterNodeList.java DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java DTMDocumentImpl.java DTMManagerDefault.java DTMNamedNodeMap.java DTMNodeList.java DTMNodeListBase.java DTMNodeProxy.java DTMStringPool.java ExpandedNameTable.java ExtendedType.java IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.ref.
Add new files:
DTMAxisIterNodeList.java
DTMChildIterNodeList.java
DTMNodeListBase.java
ExtendedType.java
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.res.
Add new messages for common serializer.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java CharInfo.java DOMSerializer.java ElemDesc.java EmptySerializer.java EncodingInfo.java Encodings.java Encodings.properties ExtendedContentHandler.java ExtendedLexicalHandler.java HTMLEntities.res Method.java NamespaceMappings.java output_html.properties output_text.properties output_unknown.properties output_xml.properties OutputPropertiesFactory.java OutputPropertyUtils.java package.html SerializationHandler.java Serializer.java SerializerBase.java SerializerConstants.java SerializerFactory.java SerializerTrace.java SerializerTraceWriter.java ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java TransformStateSetter.java WriterToASCI.java WriterToUTF8.java WriterToUTF8Buffered.java XMLEntities.res XSLOutputAttributes.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Add new serializer classes under package org.apache.xml.serializer.
Log from Brian Minchau (minchau@ca.ibm.com):

In the past Xalan-J interpretive (Xalan) and XSLTC both implemented their own
serialization stages.  Much of the code provides the same functionality.
In order to improve the maintainability of the code, and to eliminate any
functional differences, these two serializers are now merged in the
org.apache.xml.serializer package.

The best performing features of both have been used.  The class hierarchy
of serializers used by XSLTC is re-used for this reason. At the highest
level the serializer classes split based on whether the output of the
serializer is a &quot;Stream&quot; or whether it is a &quot;SAX&quot; handler.  After that
both major branches split based on the output type (e.g. XML, HTML or TEXT).

The external user interface of the old Xalan serializer has been kept.
Other classes and interfaces have been absorbed into the serializer
package to keep it independent of both Xalan and XSLTC. The primary
interface, SerializationHandler, accepts SAX and SAX-like calls, but
it also absorbs other interfaces from the old Xalan serializer.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils DOMHelper.java FastStringBuffer.java IntStack.java SuballocatedIntVector.java XMLStringDefault.java XMLStringFactoryDefault.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.utils.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions XSLProcessorContext.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.extensions.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java PipeDocument.java Redirect.java xml-xalan/java/src/org/apache/xalan/lib/sql DTMDocument.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.lib.

1. Change the return types of some date-time extension functions
for support in XSLTC.

2. Changes for the new serializer.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorOutputElem.java TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.processor.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize CharInfo.java DOMSerializer.java ElemDesc.java EncodingInfo.java Encodings.java Encodings.properties HTMLEntities.res Method.java package.html Serializer.java serializer.properties SerializerFactory.java SerializerToHTML.java SerializerToText.java SerializerToXML.java SerializerUtils.java WriterToASCI.java WriterToUTF8.java WriterToUTF8Buffered.java XMLEntities.res<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Remove old serializer classes under org.apache.xalan.serialize.
The new serializer files are now in org.apache.xml.serializer.
Add new file SerializerUtils.java.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemAttribute.java ElemCopy.java ElemCopyOf.java ElemElement.java ElemExtensionCall.java ElemForEach.java ElemLiteralResult.java ElemTemplateElement.java ElemTextLiteral.java ElemValueOf.java output_html.properties output_text.properties output_xml.properties OutputProperties.java StylesheetRoot.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.templates.
Replace ResultTreeHandler with SerializationHandler.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/trace GenerateEvent.java PrintTraceListener.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.trace.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java QueuedEvents.java ResultTreeHandler.java SerializerSwitcher.java TransformerHandlerImpl.java TransformerIdentityImpl.java TransformerImpl.java TransformSnapshot.java TransformSnapshotImpl.java TransformState.java TreeWalker2Result.java XalanTransformState.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.transformer for the new serializer.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java build.xml xsltc_todo.xml<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Update build.xml and xsltc_todo.xml.

Now the default build target is a big xalan.jar which
includes both Xalan-J Interpretive and XSLTC.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/01<BR><I>Modified: </I> xml-xalan/java/src MANIFEST.MF<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Update MANIFEST.MF to include information about
xsltc and its support jars.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/02<BR><I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><I>Committer's log entry: </I>
Updating to Xerces-J 2.4.0.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/02<BR><I>Modified: </I> xml-xalan/java/src MANIFEST.MF<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Update spec version for XSLTC in MANIFEST.MF
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/02<BR><I>Modified: </I> xml-xalan/java/samples/CompiledApplet menu.html README.applet TransformApplet.java xml-xalan/java/samples/CompiledBrazil README.brazil TransformHandler.java xml-xalan/java/samples/CompiledEJB README.ejb TransformBean.java xml-xalan/java/samples/CompiledJAXP Compile.java README.cjaxp Transform.java xml-xalan/java/samples/CompiledServlet README.servlet TransformServlet.java xml-xalan/java/samples/DOM2DOM DOM2DOM.java xml-xalan/java/samples/Pipe Pipe.java xml-xalan/java/samples/SAX2SAX SAX2SAX.java xml-xalan/java/samples/translets JAXPTransletMultipleTransformations.java JAXPTransletOneTransformation.java todo.xsl xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head

Update in the samples
1. Changes from Henry Zongaro (zongaro@ca.ibm.com) in the
XSLTC samples. Use TrAX API instead of native API.
2. Changes from Brian Minchau (minchau@ca.ibm.com) to use
the new serializer classes.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/02<BR><I>Modified: </I> xml-xalan/java/samples/CompiledApplet singleTransform.html xml-xalan/java/samples/CompiledEJB bottom_frame.html index.html top_frame.html xml-xalan/java/samples/translets todo.xml todotoo.xml<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head
Add new sample files.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/02<BR><I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml dtm.xml history.xml readme.xml samples.xml usagepatterns.xml xsltc_history.xml xsltc_usage.xml<BR><I>Committer's log entry: </I>
Merging XSLTC_DTM and common serializer to the head

Update in java/xdocs.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes FilterExprWalker.java<BR><I>Committer's log entry: </I>
Commit patch for bug 12797 from Arun Yadav (arun.yadav@sun.com).
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/03<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Added a new &quot;fulldist&quot; target.  It builds a distribution that includes Xalan-J
components that depend upon non-standard components that aren't part of the
Xalan-J repository.  In particular, xsltcbrazil.jar is built under the
&quot;fulldist&quot; target, but not under the ordinary &quot;dist&quot; target.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/04<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<BR><I>Committer's log entry: </I>
Replace Vector.add() by Vector.addElement() because the first method
is not in JDK 1.1.8.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/05<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<BR><I>Committer's log entry: </I>
Instead of setting a default baseURI in newTemplates, append a dummy string
to the default used in the TreeWalker constructors.  This solves the problem
of violating the SourceLocator.getSystemId API which should return null
if if no systemId was set, while allowing relative URI's to be resolved when
the source is a DOM and no systemID has been set.  Relative URI's are already 
resolved correctly for other source types.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/06<BR><I>Modified: </I> xml-xalan/java/samples/CompiledApplet TransformApplet.java README.applet<BR><I>Committer's log entry: </I>
Patch from Christine Li (jycli@ca.ibm.com).  Reworked applet code so that the
init method creates a thread to which it delegates all the work of creating
Transformers and performing transformations.

Xalan needs all of its classes to be loaded with respect to the same class
loader.  The thread that's created will have the context class loader, if any,
that is in effect when the applet's init method is called, but calls to other
methods on the applet might not have the same context class loader.  Using a
thread avoids any problems that might arise from such a situation.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java HTMLEntities.properties output_html.properties output_xml.properties XMLEntities.properties xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<BR><I>Committer's log entry: </I>
Patch from Christine Li (jycli@ca.ibm.com).  Changed CharInfo so that it allows
descriptions of entities to be specified as a properties file in addition to a
Xalan-specific resource file format.

The code previously always assumed a Xalan-specific resource file format, for
both user-supplied descriptions of entities, and for those supplied with
Xalan-J.  The security restrictions of applets are such that an applet that
relies on a copy of Xalan-J in the Java run-time would find that Xalan-J would
be unable to read the default entities file that is packaged with the JRE on
the applet's behalf - it can only do so with a properties, via ResourceBundle.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR><I>Committer's log entry: </I>
Commit an implementation of the date-time:format-date() extension function
(bugzilla 18713) contributed by Helg Bredow (helg.bredow@kalido.com).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2003/04/07<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml<BR><I>Committer's log entry: </I>
Docs update
Document the new &quot;use-classpath&quot; attribute
which is supported in the XSLTC TrAX API.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/07<BR><I>Modified: </I> xml-xalan/java/samples/CompiledServlet README.servlet TransformServlet.java xml-xalan/java/samples/CompiledBrazil README.brazil<BR><I>Committer's log entry: </I>
Sample updates from Christine Li (jycli@ca.ibm.com).
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2003/04/08<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize DOMSerializer.java Serializer.java SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer DOMSerializer.java SerializationHandler.java SerializerBase.java ToHTMLStream.java ToUnknownStream.java xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<BR><I>Committer's log entry: </I>
Patch from Brian Minchau (minchau@ca.ibm.com) for backward compatibility
of new serializers.  Also a fix related to a failure in the DOM2DOM sample.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/serializer HTMLEntities.res XMLEntities.res<BR><I>Committer's log entry: </I>
Dropped descriptions of entities in the form of resource files in favour of
those in the form of properties file.  The resource files are still supported,
but Xalan-J's serializer only requires one.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2003/04/09<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Dropped descriptions of entities in the form of resource files in favour of
those in the form of properties file.  The resource files are still supported,
but Xalan-J's serializer only requires one.
<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.4.1</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL>
<LI><I>Committed by </I>johng@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<BR><I>Committer's log entry: </I>
Fixed Class loader Problem. Default Connection now uses context Classloader
<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>
Fixed problem where a query that returned zero rows would incorrectly return a JDBC
Exception. Note: This only occurs in streaming mode.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>
Add a convenient interface getStringValue() which returns the
string value of a node. It is used by the extension code
to get a node value without hacking into the DTM.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates Constants.java<BR><I>Committer's log entry: </I>
Add strings for new extension namespaces. This includes new EXSLT
namespaces (dynamic and strings), namespaces for redirect, PipeDocument
and SQL extensions and new namespace for the Java extension. For
backward compatibility, the old Java namespace is still kept.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<BR><I>Committer's log entry: </I>
Register new extension namespaces, including two new EXSLT namespaces
(dynamic and strings), namespaces for redirect, PipeDocument and SQL
extensions and the new/old namespaces for Java extension.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>
Reorganize the extension functions for new EXSLT extensions and
XSLTC integration. The implementation of some extension functions
(intersection, difference, distinct, evaluate and tokenize) are
moved to the corresponding EXSLT extension classes. We also put
a note to say that using these extension functions in the
Xalan namespace is deprecated. The signature of some extension
functions are changed to facilitate the XSLTC integration.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<BR><I>Committer's log entry: </I>
The EXSLT math extension was rewritten for XSLTC integration. The
signatures of the existing functions (max, min, highest and lowest)
are changed. We use NodeList instead of NodeSet and NodeIterator
in arguments and return types, because it is the only node list type
recognized by XSLTC. We also got rid of the ExpressionContext
arguments in these functions. We implemented the toNumber() and toString()
interfaces as a replacement.

I also implemented all of the remaining math functions in the EXSLT spec,
e.g. constant, sin, random.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java<BR><I>Committer's log entry: </I>
The signatures of the sets extension functions are changed for
XSLTC integration. NodeList is used instead of NodeSet and NodeIterator
in arguments and return types. The implementation of intersection,
difference and distinct was moved from Extensions.java to this file.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<BR><I>Committer's log entry: </I>
Add comments for the new namespace (http://xml.apache.org/xalan/redirect).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java<BR><I>Committer's log entry: </I>
Add comments for the new namespace (http://xml.apache.org/xalan/PipeDocument).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<BR><I>Committer's log entry: </I>
Add comments for the new namespace (http://xml.apache.org/xalan/sql).
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java<BR><I>Committer's log entry: </I>
Add the ExsltDynamic class which implements the EXSLT dynamic
extension functions (max, min, sum, map, evaluate and closure).

The implementation of evaluate is taken from Extensions.java.
The Javadoc is copied from the relevant EXSLT page.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<BR><I>Committer's log entry: </I>
Implement the EXSLT strings extension functions (align,
concat, padding, split and tokenize). The implementation
of tokenize is taken from Extensions.java.

The Javadoc is copied from the relevant EXSLT page. Three
functions (decode-uri, encode-uri and replace) are missing
due to ambiguous spec.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes SelfIteratorNoPredicate.java<BR><I>Committer's log entry: </I>
For Bugzilla 11809 and 10643. Fix the nextNode() interface so that
it returns DTM.NULL if the m_foundLast flag is true.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<BR><I>Committer's log entry: </I>
For Bugzilla 11073. Fix an extension namespace problem.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<BR><I>Committer's log entry: </I>
For Bugzilla 11743 and 12298. Fix argument handling in
extension functions. Arguments now have non-null parents
and they will be visited by the XPathVisitor.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/09<BR><I>Modified: </I> xml-xalan/java KEYS<BR><I>Committer's log entry: </I>
I had to get a new key after a hard drive crash.  This time, I backed it up!
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/11<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Copy the LICENSE and README files to the bin directory for the source distribution.
These files are needed by the xsltc.jar target.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/11<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>
Throw an IllegalArgumentException in the setErrorListener() interface
if the error listener is null.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/11<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions MethodResolver.java<BR><I>Committer's log entry: </I>
For Bugzilla 9731. Convert an empty NodeList to a null Node.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
For Bugzilla 12379. Transformer.setOutputProperties() should throw
IllegalArgumentException if the property is invalid.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<BR><I>Committer's log entry: </I>
For Bugzilla 12127. Throw a TransformerException if a prefix cannot
be resolved to a URI insteading of throwing a NullPointerException.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<BR><I>Committer's log entry: </I>
Correct a problem in the previous patch.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR><I>Committer's log entry: </I>
Javadoc correction.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>
Make the tokenize extension function different from the one in the
EXSLT strings extension. Reuse the Document object to reduce
memory consumption.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<BR><I>Committer's log entry: </I>
Make the tokenize function conformed with the EXSLT spec. Reuse
the Document object to reduce memory usage.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>
For Bugzilla 11341. Let RTFIterator extend NodeSetDTM so that it is the kind
of DTMIterator expected by DTMNodeList. This also fixes the problem in
testcase JavaBugzilla3722.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java XSLTSchema.java<BR><I>Committer's log entry: </I>
For Bugzilla 12077. Fixed problem with func:function in included stylesheet.
Add exsltFunction to the templateElements list so that we can detect the error where
func:function is embedded in another (e.g. xsl:variable) element.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/17<BR><I>Modified: </I> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<BR><I>Committer's log entry: </I>
New version of xml-apis.jar taken from xml-commons with tag:
factoryfinder-build.  It contains the JAXP FactoryFinder patch and some
SAX file updates.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/18<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>
XSLTC support - phase 1

Add the -XSLTC option to enable transforming using XSLTC

The following existing options do not work in XSLTC mode:
-TT
-TG
-TS
-TTC
-QC
-L
-INCREMENTAL
-NOOPTIMIZE
-RL

If any of these options is used with -XSLTC, a message is printed
and the option is ignored. All other existing options (e.g. -flavor,
-text, etc.) can be used with -XSLTC.

In phase 2, we are going to migrate the XSLTC specific options in the
XSLTC command lines (Compile and Transform) to the Process command line.
One of the new features would be generating translet class files from
the xsl.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/19<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java ExsltMath.java ExsltStrings.java<BR><I>Committer's log entry: </I>
Extension work. A few Javadoc correction. Fix problems in math:max and math:min.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/19<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XRTreeFragSelectWrapper.java<BR><I>Committer's log entry: </I>
For Bugzilla 6181. Change the execute() interface to return the result
of executing the select expression.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/20<BR><I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><I>Committer's log entry: </I>
Updating to latest xercesImpl.jar, which contains org.w3c.dom.xpath interfaces.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Prototype implementation of DOM L3 XPath Specification.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>
Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #6927.
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml xsltc_usage.xml<BR><I>Committer's log entry: </I>
compile -n option changed so inlining is now the default
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltDynamic.java ExsltMath.java ExsltSets.java ExsltStrings.java<BR><I>Committer's log entry: </I>
Extension cleanup.
Add an ExsltBase class as the super class for other EXSLT implementation
classes, so that the toString() and toNumber() interfaces can be easily
reused by all the subclasses without duplicating code.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath DOMHelper.java<BR><I>Committer's log entry: </I>
The isNodeTheSame(node1, node2) interface should return true if node1==node2.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Patch for bugzilla #10384.  There's still a problem with attribseterr08 which
is covered in bugzilla #3969.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/dom3/xpath XPathEvaluator.java XPathException.java XPathExpression.java XPathNamespace.java XPathNSResolver.java XPathResult.java<BR><I>Committer's log entry: </I>
Since Xerces has decided not to build the org.w3c.dom.xpath interfaces into
XercesImpl I have created a temporary home for these interfaces, until
the specification becomes a recommendation.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java<BR><I>Committer's log entry: </I>
Updating import statements to use the interfaces in the temporary org.apache.xalan.dom3.xpath package.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Added some new error message strings.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #4344.  The testcases, copyerr04-07 were already
working correctly in that when an attempt was made to add an attribute
after child elements, or before an element was produced, the attribute was 
ignored.  However, Dave M.  said that a warning was also needed.  So,
I have added a warning message for these cases.  Also, similar behaviour
was being seen for testcases attribset19,35,36 and attribseterr08.  This
was being handled in ElemAttribute.execute, but I've commented out the
code there since it will get caught in  ResultTreeHandler.execute in the
same place the copyerr tests get handled.

The negative testcases, copyerr04-07, attribset08 should  be moved
to the positive bucket (possibly with a few tweaks) since they all run to
completion.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Patch for bugzilla #4344.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/09/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>
Gordon Chiu's (grchui@ca.ibm.com) patch for bugzilla #8473.  Thanks also
to Brian Minchau (minchau@ca.ibm.com) for the analysis of this bug.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FunctionMultiArgs.java<BR><I>Committer's log entry: </I>
For Bugzilla 7161. Add a public accessor to return the argument array.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java<BR><I>Committer's log entry: </I>
For Bugzilla 10414. Provide a getErrorListener() interface in the ExpressionContext.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/27<BR><I>Modified: </I> xml-xalan/java/samples/AppletXMLtoHTML client.html<BR><I>Committer's log entry: </I>
For bugzilla 13059. Fix typo width&quot;0&quot; to width=&quot;0&quot;.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/30<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Messages for new options in the Process command line.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/09/30<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>
XSLTC support in the Process command line - phase 2
Migrate the options from the XSLTC command line (Compile and Transform)
to the Process command line. The following new options are added:

-XO [translet_name]  (specify translate class name)
-XD destination_directory (specify destination directory)
-XJ jar_name (put translet into jar file)
-XP package_prefix (specify package name prefix)
-XN (enable template inlining)
-XX (additional debug messages)
-XT (use translet to transform if possible)

The new options can only be used with the -XSLTC option. The options are
passed to XSLTC via the standard TRAX API - TransformerFactory.setAttribute().
Process does not directly communicate with XSLTC.

The usage instructions are also re-organized. The options are divided into
three categories (command options, Options for Xalan and Options for XSLTC). A
pager is used when displaying the usage instructions so that you can see them
page by page.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2002/10/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Added and fixed up some additional translation guidelines.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<BR><I>Committer's log entry: </I>
Use Vector.elementAt() instead of Vector.get(). The latter is not available
in JDK 1.1.8. Add two argument accessor methods for Bugzilla 8939.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates Constants.java ElemTemplateElement.java output_html.properties output_text.properties output_xml.properties OutputProperties.java<BR><I>Committer's log entry: </I>
Use one namespace for all extensions (Bugzilla 9959)
Use the new namespace uri &quot;http://xml.apache.org/xalan&quot; instead of
&quot;http://xml.apache.org/xslt&quot; for xsl:output extension attributes.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java XSLTElementDef.java XSLTSchema.java<BR><I>Committer's log entry: </I>
Use one namespace for all extensions (Bugzilla 9959)
Use the new namespace uri &quot;http://xml.apache.org/xalan&quot; for
the component and script extension elements. We maintain
backward compatibility so that using the old uri
&quot;http://xml.apache.org/xslt&quot; still works.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/03<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaPackage.java<BR><I>Committer's log entry: </I>
Minor Javadoc update to use the new namespace uri.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/03<BR><I>Modified: </I> xml-xalan/java/samples/extensions 1-redir.xsl 2-basicJscript.xsl 3-java-namespace.xsl 4-numlistJava.xsl 5-numlistJscript.xsl 6-sqllib-instantdb.xsl<BR><I>Committer's log entry: </I>
Update the extension samples to use the new namespace.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/04<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<BR><I>Committer's log entry: </I>
Minor fix for math:max().
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/04<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<BR><I>Committer's log entry: </I>
For Bugzilla 13106. Visit the XPath expressions created for match patterns.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java UnionPathIterator.java WalkerFactory.java xml-xalan/java/src/org/apache/xpath/compiler Compiler.java Lexer.java OpMap.java XPathParser.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #5046.

The token queue and operations map can now grow to accomodate really
large XPath expressions.   Starting sizes of the data structures remain set
at the size in the current code.

I created new classes org.apache.xml.utils.ObjectVector (based on org.apache.xml.utils.IntVector)
and org.apache.xpath.compiler.OpMapVector to store the token queue
and operations map.

This patch is essentially a stop gap until the new parser (xslt20 branch) is integrated.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils ObjectVector.java xml-xalan/java/src/org/apache/xpath/compiler OpMapVector.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #5046.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler OpMap.java<BR><I>Committer's log entry: </I>
Cleaning up import statements.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils IntStack.java IntVector.java ObjectStack.java ObjectVector.java xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemForEach.java xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java TransformerImpl.java TransformSnapshotImpl.java xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
Commiting Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla#8175.

IntStack's and ObjectStack's are now used in place of fixed length arrays, so that users
should not run into limitations based on array sizes.  The initial size of the arrays has
been set to current array sizes, so the user's experience should not change much, except
in the cases where they were running into the size limitation.

No performance analysis has been done to determine an optimal initial
size for the stacks.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
Committing Igor Hersht's (igorh@ca.ibm.com) patch for bugzilla #10176.

Also, removing testcase position102 from the excludes list for the smoketest
since it now runs.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/15<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #13305.  Moved initalization code into a static initializer.

TransformerFactory.newInstance() can now be called safely from multiple
threads.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/19<BR><I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><I>Committer's log entry: </I>
Updating to XercesJ 2.2.0.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<BR><I>Committer's log entry: </I>
Committing Pavel Ausianik's (Pavel_Ausianik@epam.com) patch for bugzilla #12687.

Reduce memory allocation on initialization of ExpandedNameTable.

m_locNamesPool and m_namespaceNames and code that uses them has
been commented out.  Some initialization now done in static initializer.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
Committing Gordon Chiu's (grchiu@ca.ibm.com) modified patch of Pavel Ausianik's (Pavel_Ausianik@epam.com) 
patch for bugzilla #12486.

Method XPathContext.reset()  was creating many new instances of java objects, 
causing unnecessary memory allocations, instead of reusing previously created 
objects. 


m_locNamesPool and m_namespaceNames and code that uses them has
been commented out.  Some initialization now done in static initializer.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/20<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<BR><I>Committer's log entry: </I>
Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #13754.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html<BR><I>Committer's log entry: </I>
Copying the copyright statement for the DOM L3 XPath API interfaces into
the temporary package (org.apache.xalan.dom3.xpath) which contains
the interfaces until they become a recommendation.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/22<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<BR><I>Committer's log entry: </I>
For bugzilla 13711
Fix the conditions for validating the child elements of func:function.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/22<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<BR><I>Committer's log entry: </I>
Committing urban.spielmann@swisslife.ch (Urban Spielmann)'s  patch for bugzilla #11661.  

After the Redundant Expression Elimination merge, the key cache had
not yet been replaced.  This patch puts back the key cache, which
gives xsl:key much better performance.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/22<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<BR><I>Committer's log entry: </I>
For bugzilla 7357
Fix problems in exception handling for extension elements.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/23<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #13863.

Moved setting the namespaceContext from the TransformerImpl constructor to
the transform method.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPath.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Move a hardcoded string into the properties file.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java<BR><I>Committer's log entry: </I>
For bugzilla 13944. Check for InvocationTargetException in Method.invoke().
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
For Bugzilla 13303.
Fix Memory leak in XPathContext.popRTFContext().
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>
Backing out patch for bugzilla #13863.  It causes a bunch of failures in 
the trax.sax flavour.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan extensions.xml extensionslib.xml samples.xml<BR><I>Committer's log entry: </I>
Update the extensions documentation.
Use the new namespaces in documents and examples. Update EXSLT development
status. Modify setup instructions for SQL samples.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/xdocs xml-site-style.tar.gz xml-xalan/java/xdocs/sources/xalan faq.xml resources.xml<BR><I>Committer's log entry: </I>
For Bugzilla 14022
Commit Gordon Chiu's update to the FAQ.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html XPathEvaluator.java XPathException.java XPathExpression.java XPathNamespace.java XPathNSResolver.java XPathResult.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java<BR><I>Committer's log entry: </I>
Removed the temporary org.apache.xalan.dom3.xpath package.

Updated the org.w3c.dom.xpath interfaces.

Changed dependencies to org.w3c.dom.xpath interfaces in the implementation
classes in org.apache.xalan.xpath.domapi.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Build org.w3c.xpath.dom interfaces into xalan.jar.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
Patch from Gordon Chiu.  Replace stack.clear() calls with stack.removeAllElements()
to be compatible with JDK1.1.8.
<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>2002/10/28<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Support compiling under JDK 1.2 - 1.4.  Also check for compatability with target JDK 1.1.x.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/10/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/domapi XPathNamespaceImpl.java XPathResultImpl.java<BR><I>Committer's log entry: </I>
Somewhat rough implementation of XPathNamespace.
<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>2002/10/29<BR><I>Modified: </I> xml-xalan/java/bin ant.jar<BR><I>Committer's log entry: </I>
Upgrade to Ant 1.5.1.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/10/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltStrings.java xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<BR><I>Committer's log entry: </I>
Fix JDK 1.1.8 compatibility problems.
Replace methods calls that are only in Java2 by JDK 1.1 equivalents.
For DefaultConnectionPool.java, use reflection mechanism to invoke
Thread.getContextClassLoader() instead of hard-coded invocation.
<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.4.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize SerializerToText.java<BR><I>Committer's log entry: </I>
Bugzilla 8358 -- bad method signature. I've created a new method
with the correct signature. The old one may or may not be entirely
superfluous, but I don't want to muck with it right now.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml<BR><I>Committer's log entry: </I>
Updated Xalan version to 2.3.2 and Xerces to 2.0.1.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<BR><I>Committer's log entry: </I>
Added classpath information pertaining to xercesImpl.jar and xml-apis.jar.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent<BR><I>Committer's log entry: </I>
Added pointer to xml-apis.jar MANIFEST for version information.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_history.xml<BR><I>Committer's log entry: </I>
Updates for next version (release notes to history)
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<BR><I>Committer's log entry: </I>
Added info on Xalan implementation of EXSLT common, math,
and set extensions, and ongoing work on the function and result
elements and datetime extensions.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan index.xml<BR><I>Committer's log entry: </I>
Added support for EXSLT extensions.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
Fix for Bugzilla entries
	6833
	7023
	7123
	7410

Basic summary of logic error: It is possible for multiple RTF DTMs
to be pushed onto the stack between the start of a template and
return from it. I hadn't anticipated that, so my pop logic was
inadequate.

I'm still not 110% sure I understand the case where this situation
arises... I have a general intuition that it makes sense, but also a
suspicion that there might be a way to avoid creating one of these
DTMs. We should review that someday.

Meanwhile, this fixes a whole batch of related bugs.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<BR><I>Committer's log entry: </I>
Performance improvement. Instead of looping through the ExtendedType objects, use a hashtable and go directly to the correct object.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<BR><I>Committer's log entry: </I>
Bugzilla 6356: Add support for &quot;windows-1251&quot; and use a properties file to store all the supported encodings. Patch from Sergey Ushakov.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<BR><I>Committer's log entry: </I>
Add basic DOM nodetypes to our hashtable of extended type IDs
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/05/12<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xml/utils/res XResourceBundle.java XResourceBundleBase.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResourceBundle.java XPATHErrorResources_en.java XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Use PropertyResourceBundle instead of ListResourceBundle, and put error
messages into property files, for easier localization.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes WalkerFactory.java<BR><I>Committer's log entry: </I>
In mightBeProximate, there was a bug that assumed a variable would not be
be a numeric result.  It is now fixed to assume a number may be a number, which
may cause a small performance penalty.  In the future, it should be possible to
chase this down a bit more to rule out more variables as non-numbers.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPath.java<BR><I>Committer's log entry: </I>
Bugzilla 7157. Updated Javadoc comment to note that the XPath.installFunction() method currently does not
use the name parameter.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java xml-xalan/java/src/org/apache/xpath/functions FuncLast.java FuncPosition.java Function.java<BR><I>Committer's log entry: </I>
Bugzilla6284: New function added to position() and last() that will help us determine whether we are executing a top-level expression and therefore, not inside a predicate
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<BR><I>Committer's log entry: </I>
Add a null constructor for resource files and fix XSLMessages to use the correct error resource file
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/13<BR><I>Modified: </I> xml-xalan/java/src/META-INF/services org.apache.xml.dtm.DTMManager xml-xalan/java/src/org/apache/xml/dtm DTMManager.java<BR><I>Committer's log entry: </I>
Add meta file for DTMManager factory and make sure it is read as UTF-8
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/14<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XNodeSetForDOM.java<BR><I>Committer's log entry: </I>
m_last was not being set correctly. See comments.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/14<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<BR><I>Committer's log entry: </I>
Bugzilla 7118: Variable set via RTF may have
local variables within it; need to push a new
context.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/15<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<BR><I>Committer's log entry: </I>
Missing safety net, mostly needed during stylesheet construction.

We really should change TransformerImpl to set parent _before_
starting to setPropertiesFromAttributes, so the error conditions
which might cause this test to be needed don't arise. Among other
things, that would produce more useful diagnostic messages.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/15<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<BR><I>Committer's log entry: </I>
Bugzilla 8894: DescendantForRoot traversers needed to implement their own version of first(int, int) so that their context would be from the root.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/05/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<BR><I>Committer's log entry: </I>
Fix for NullPointerException in SQL extension stuff. Just check for a NULL iterator...
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>
Bugzilla 8324. This should have been checked into the main branch.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<BR><I>Committer's log entry: </I>
Dumb of me -- fixed one edge case and created another, because
I forgot about subclassing Sigh. This version protects against both.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>
Fix for new tests Variable71 and Variable72.

When we went to the shared RTF DTMs, we forgot to update
PreceedingIterator to reflect the fact that the root of a DTM tree
may no longer have 0 as its internal Node Identifier. This change
corrects that situation, and does so without imposing a lot of
computational overhead since we need to scan the ancestors
anyway.

There appear to be similar hazards in some of the Traversers,
still to be dealt with. Coming up with testcases which will provoke
those bugs (and confirm that we've fixed them) is likely to be
harder than writing the fix itself...
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/05/17<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<BR><I>Committer's log entry: </I>
section on problems was way out of date. Also incorporated material from JAXP 1.2 release notes
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/05/17<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<BR><I>Committer's log entry: </I>
updated command option usuage. Some options have been added.
<BR><BR></LI><LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2002/05/17<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<BR><I>Committer's log entry: </I>
Updated first three sections.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/17<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<BR><I>Committer's log entry: </I>
Bugzilla 7118 REVERT -- This fix was provoking bug 9195, which
is more severe.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>
Obvious mistake, apparently in a corner our regression tests missed.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/05/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<BR><I>Committer's log entry: </I>
Root node is not always 0 in an RTFDTM
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/05/22<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xpath/functions FuncPosition.java<BR><I>Committer's log entry: </I>
Fixed hard coded string for timing diagnostics.
<BR><BR></LI><LI><I>Committed by </I>santiagopg@apache.org<I> on </I>2002/05/31<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>
Prevent an external DTD from being inlined when using the built-in
identity transform.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/04<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorFuncResult.java ProcessorFunction.java ProcessorOutputElem.java ProcessorResultDocument.java XSLTSchema.java<BR><I>Committer's log entry: </I>
XSLT 2.0: stylesheet function, result-document, and
principal-result-document.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/06/04<BR><I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><I>Committer's log entry: </I>
Xalan3 branch: Check in temporary version of Xerces. This predates
the most recent changes to Xerces, and supports the older &quot;light
weight&quot; PSVI APIs. Current Xerces has replaced those with a heavier
version, but in the process lost the derivedFrom() method which
we need; when they restore that functionality, we'll cut over.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/05<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR><I>Committer's log entry: </I>
Core EXSLT dates-and-times functions.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/06<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java XUnresolvedVariable.java<BR><I>Committer's log entry: </I>
Fix bug 7118.  In XUnresolvedVariable, treat the RTF variable much more like
a template that has to count it's variables at compose-time, and link and unlink
when the lazy variable is resolved.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java xml-xalan/java/src/org/apache/xml/utils ListingErrorHandler.java xml-xalan/java/src/org/apache/xml/utils/synthetic JavaUtils.java xml-xalan/java/src/org/apache/xpath VariableStack.java xml-xalan/java/src/org/apache/xpath/functions FuncConcat.java Function.java Function2Args.java Function3Args.java FunctionOneArg.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Integrated some removal of hard-coded error messages.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/08<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>
Add resets for m_contextNodeLists, etc.  It might be possible that these are
redundent with the same thing being done somewhere else, but given
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6021 I suspect
that this really does need to be done here.  It would explain any problems
that might have been reported after an exception has been thrown, and
the Transformer is being reused.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/08<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemTemplate.java xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java TransformerImpl.java xml-xalan/java/src/org/apache/xml/utils URI.java<BR><I>Committer's log entry: </I>
Add back a certain amount of StackGuard functionality.  Instead of checking
counts where both the node and the xsl:template are the same... (we would
really need also to check that parameters are the same), just check for recursion
of templates.  We can make it fancier over time to also check for same params,
but checking of the current node may be harder.  I was only able to set the
recursion limit to about 475 before I would get stack overflow errors anyway.
I also did some stuff where the error messages should be more consistent by
making sure some of the arrays are reset in XPathContex, which may address
some of the inconsistency problems that Christina reported.
may address part of the problem that Christina was having.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/08<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java<BR><I>Committer's log entry: </I>
Moved hard coded strings for StackGuard error message to properties file.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Fix bug for optionV.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java ExpressionVisitor.java ExtensionHandlerExsltFunction.java ExtensionNamespacesManager.java ExtensionNamespaceSupport.java ExtensionsTable.java xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFuncResult.java ProcessorExsltFunction.java StylesheetHandler.java XSLTSchema.java xml-xalan/java/src/org/apache/xalan/templates Constants.java ElemExsltFuncResult.java ElemExsltFunction.java ElemExtensionCall.java ElemExtensionDecl.java StylesheetRoot.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xpath ExtensionsProvider.java XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncExtElementAvailable.java FuncExtFunction.java FuncExtFunctionAvailable.java<BR><I>Committer's log entry: </I>
Updates to Xalan extensions: (1) EXLST function and (2) architectural modifications.
This is a merge of the ExtensionEnhancements branch into Main.

1. EXSLT function
We are well underway in our progress towards providing support for EXSLT extension functionss and elements. The EXSLT function and result elements (see http://www.exslt.org/func/func.html) require some fairly substantial additions.
XSLTSchema includes new XSLTElementDefs for a top-level exslt:function element, which, along with other items, may contain an exslt:result element. These definitions specify a new element class and processor for both of these elements, and a new extension handler. I have tested the implementation with the 6 test cases that EXSLT provides (including recursive calls), and it passes these tests.
Note: These additions/updates also provide the infrastructure for the XSLT 2.0 stylesheet function.
2. Architectural changes
During styesheet composition, Stylesheet Root assembles a vector of ExtensionNamespaceSupport objects. This object contains the information required during a transform to instantiate the required ExtensionHandler. If the stylesheet includes no extensions, this vector is null.  I.e.,  it does not include handlers for the default extension namespaces (of which there are currently 7, and which the Xalan currently loads for each transformation).
The presence of an extension is detected as follows:
Compilation of an expression that contains a FuncExtFunction. StylesheetHandler.createXPath()  uses an XPathVisitor to locate any FuncExtFunctions embedded in the expression.
Final composition of a component element  -- ElemExtensionDecl.compose().
Final composition of an extension component for which no component exsits -- ElemExtensionCall.compose().
Final composition of an exslt:function element -- ElemFunction.compose().
During StylesheetRoot.recompose(), any extension namespaces that are not predefined and for which no component or function element exists, are defined as java class (if a java class is found) or java package. In the current implementation, this last stab is made during the transformation, repeatedly if the element or function cannot be processed and is called more than once.
At the beginning of each transformation -- transformNode() --  if any extensions exist, TransformerImpl instantiates an ExtensionsTable with a hashtable containing an ExtensionHandler for each of the ExtensionNamespaceSupport objects defined during stylesheet assembly. XPathContext  no longer creates or has any direct knowledge of the ExtensionsTable. The ExtensionsTable does not contain handlers for predefined namespaces that are not being used.
TransformerImpl implements the org.apache.xpath.ExtensionsProvider interface. The relevant XPath functions (FuncExtFunction, FuncExtElememntAvailable, and FuncExtFunctionAvailable) call this interface, via XPathContext.getOwnerObject(). The implementation contains 3 methods that call through to the ExtensionsTable, which passes the call on to the appropriate ExtensionHandler..
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java<BR><I>Committer's log entry: </I>
Use ContextClassLoader - Use full Encoding file package name - Merge new patch from Sergey Ushakov
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncFormatNumb.java xml-xalan/java/src/org/apache/xpath/functions FuncConcat.java FuncExtFunction.java FuncSubstring.java Function.java Function2Args.java Function3Args.java FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Patch submitted by Henry_Zongaro@us.ibm.com:

To summarize what I did, the Function class and its subclasses have two
methods that check the number of arguments:  setArg and
checkNumberArgs.  The former checks whether too many arguments are
specified, and the latter checks for too few (or too many, redundantly).

In the case where there are optional arguments (as in substring), the class
for the function (FuncSubstring, in this case) derives from a class that has a
fixed number of arguments (Func3Arguments, in this case).  If too few
arguments are specified, the FuncSubstring.checkNumberArgs method
reports that the function only allows 2 or 3 arguments; if too many arguments
are specified, the Function3Arguments.setArg method reports that the
function only allows 3 arguments.

To fix the problem, I added reportWrongNumberArgs() methods to the
Function class and to its subclasses, as appropriate, and I added code to
call that from checkNumberArgs and setArg - that way, the correct number
of arguments is always reported in the error messages.

Alternatively, I could have changed the setArg method in all the classes that
have optional arguments to report correctly the number of arguments, but I
didn't like the idea of having it redundantly perform the same check that the
setArg method of its base class was going to perform just to get a better
message out.  A third possibility would be to have setArg call the
checkNumberArgs method when it detects too many arguments are
specified; that would guarantee that setArg would report the same message,
and avoid introducing a new method, as long as checkNumberArgs always
checks for both too few and for too many arguments.  A fourth possibility
would be to report two different errors:  the minimum number of arguments
required in checkNumberArgs and the maximum permitted in setArg.

I also noticed that the message produced for FuncSubstring when too few
arguments are specified actually indicates that 0 or 1 arguments are required,
 so I fixed the XPATHErrorResources.properties file.

I don't see the NPE that Dave Marston mentions in Bugzilla, so I assume
that's been fixed.
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java ElemTemplateElement.java xml-xalan/java/src/org/apache/xml/utils PrefixResolver.java PrefixResolverDefault.java xml-xalan/java/src/org/apache/xpath/compiler Lexer.java<BR><I>Committer's log entry: </I>
Patch submitted by Ilene_Seelemann@us.ibm.com for Bug 6798:

Added a method (handlesNullPrefixes) to the PrefixResolver interface so
that the resolver can indicate whether it supports null prefixes.  Then, in the
tokenizer, if the prefix is null, and the resolver supports that, it continues
processing as if the prefix had a value.  In Lexer.java, methods that have
changed are: tokenize, mapNSTokens.

In ElemNumber#getCountMatchPattern, pass MyPrefixResolver instance to default
psuedo match patterns.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_constraints.xml xsltc_history.xml<BR><I>Committer's log entry: </I>
Moved 2.3.2 core and xsltc updates into the history files.
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/bin xercesImpl.jar<BR><I>Committer's log entry: </I>
xercesImpl.jar from Xerces-J-bin.2.0.1.zip (for upcoming Xalan-J 2.4.D1)
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/src MANIFEST.MF<BR><I>Committer's log entry: </I>
Update xerces.jar to be xercesImpl.jar; this should have been
done quite a while ago.  Note the Class-Path: entry needs review
in general at some point.
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan builds.xml<BR><I>Committer's log entry: </I>
Brief documentation about developer standards and official build processes
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/xdocs/sources xalan-jlocal.xml<BR><I>Committer's log entry: </I>
Add builds.xml; perhaps should also be added to xalan-jsite.xml as well
<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>2002/06/11<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java xml-xalan/java/src/org/apache/xpath/compiler Lexer.java<BR><I>Committer's log entry: </I>
From Ilene Seelemann:
Added the following in blue to line 395 of Lexer.java

     if ((-1 != posOfNSSep) ||
         ((m_namespaceContext != null) &amp;&amp; (m_namespaceContext.handlesNullPrefixes())))

I'm also including ElemNumber.java which really doesn't need to
explicitly state that it implements PrefixResolver.
Without these updates everything does run fine.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan readme.xml xsltc_constraints.xml<BR><I>Committer's log entry: </I>
updates for developer's release.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan history.xml index.xml readme.xml resources.xml xml-xalan/java KEYS<BR><I>Committer's log entry: </I>
Patches for developer's release from Sarah McNamara.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>
Updated version # for developer's release.
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>
Update .jar file sizes for 2.4.D1 release
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan resources.xml<BR><I>Committer's log entry: </I>
Remove extraneous slash char on path
Submitted by: mcnamara@ca.ibm.com
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>
Fix Bugzilla #9137; don't toLowerCase() the filename (not really needed anymore);
remove line for xalan.jar for 2_4_D1 because .jar build size is not determinate
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/13<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<BR><I>Committer's log entry: </I>
Add pointers to info on new EXSLT extensions.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/17<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<BR><I>Committer's log entry: </I>
Changed Vector.get(int) to Vector.elementAt(int) to maintain
compability with Java 1.1.8.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/17<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<BR><I>Committer's log entry: </I>
Modified leap-year functions to use arithmetic logic rather than relying
on a Calendar method that doesn't exist in Java 1.1.8.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/18<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>
Added RTFIterator (extends OneStepIteratorForward);
created fromRTFFragment so EXSLT object-type function
can identify an RTF with certainty.
<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>2002/06/18<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java<BR><I>Committer's log entry: </I>
Removed duplicate implementation of several EXSLT &quot;Set&quot;
functions.
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/06/21<BR><I>Modified: </I> xml-xalan/java/bin jtidy.LICENSE.txt jtidy.README.txt Tidy.jar<BR><I>Committer's log entry: </I>
adding Jtidy for use with test harness to parse html
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils Hashtree2Node.java<BR><I>Committer's log entry: </I>
Simplistic static utility to convert a Hashtable of items (either
Hashtables or anything else cast to (String)) into an Element tree
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>
Update checkEnvironment to attempt to call org.apache.env.Which first
by using reflection; Which provides better output data than
EnvironmentCheck.  If reflection doesn't work, then we
fallback to EnvironmentCheck as before.
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/21<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan faq.xml<BR><I>Committer's log entry: </I>
Add doc about calling checkEnvironment as a stylesheet extension
<BR><BR></LI><LI><I>Committed by </I>tmiller@apache.org<I> on </I>2002/06/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>
bug fix for bugzilla 9572, fix by Pavani.Mukthipudi@sun.com
<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>2002/06/26<BR><I>Modified: </I> xml-xalan/java build.xml<BR><I>Committer's log entry: </I>
Update docs.class.path to include XSLTC-dependent jars
Submitted by:	Henri Gomez hgomez@slib.fr
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Add error resources pulled out from code
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Add error resources pulled out from code
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java OpMap.java<BR><I>Committer's log entry: </I>
Pull out hard coded messages
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Bugzilla 5016: Patch from Henry Zongaro... Fix XPATHParser.java to prevent matching empty RelativeLocationPath and Step expressions, prevent a LocationPath from preceding a Predicate in a FilterExpr, check for valid NameTest in NodeTest()
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/06/28<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Fix typo.
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/06/29<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<BR><I>Committer's log entry: </I>
fix typo in SmartTransormerFactoryImpl pointed out by Tobias McNulty
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/07/01<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<BR><I>Committer's log entry: </I>
Bug6268. Patch from Ilene Seelemann. Fix Grouping separator. If no grouping separator is specified but a gouping size is, number is not formatted. If grouping separator is &quot;&quot;, warning is issued and number is not formatted. If grouping separator is more than one character, warning is issued and number is not formatted.
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/07/08<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java XSLTAttributeDef.java xml-xalan/java/src/org/apache/xml/utils DefaultErrorHandler.java<BR><I>Committer's log entry: </I>
resource error messages
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/07/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTElementProcessor.java XSLTSchema.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates AVT.java Constants.java ElemAttribute.java ElemElement.java ElemNumber.java ElemPI.java xml-xalan/java/src/org/apache/xml/utils QName.java StringToIntTable.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<BR><I>Committer's log entry: </I>
Bugzilla 5013: Validation of QName attribute values. The patch will also fix the missing validation described in bugs 792 and 793
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/07/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils XMLChar.java<BR><I>Committer's log entry: </I>
Bugzilla 5013: Validation of QName attribute values. The patch will also fix the missing validation described in bugs 792 and 793
<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>2002/07/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>
bugzilla 9575: Fix AncestorIterator counting root node twice. Patch from Henry Zongaro.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/07/10<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<BR><I>Committer's log entry: </I>
&lt;Blush&gt;

This was still trying to switch between setAttribute() and
setAttributeNS(). Correct usage of DOM Level 2 would be to
always use setAttributeNS(), and simply set a null URI when the
node is not namespaced. (Basically, the L1 versions of
createElement, createAttribute, setAttribute and setAttributeNode
should be considered deprecated with the sole exception of
manipulating a DOM intended to be viewed *only* as Level 1.)

I could swear we fixed this a VERY long time ago...
Good catch, thanks for calling it to our attention.

&lt;/Blush&gt;
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/19<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>
Morris Kwan's patch for bugzilla#10306

The problem is that the namespace declaration is not added to the attributes if there are other leading attributes. There is a check for whether the namespace
 has already been added. That check is commented out because multiple namespace declarations can exist in one element.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/22<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java<BR><I>Committer's log entry: </I>
Applied patch from Morris Kwan for bugzilla #9753.

The bug addresses the problem that there is a build error with Xalan under JDK 1.4, because one of the classes uses assert() as method name.
 And assert is a keyword in JDK 1.4. The patch just changes the word &quot;assert&quot; to &quot;assertion&quot;.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTSchema.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates ElemPI.java xml-xalan/java/src/org/apache/xml/utils QName.java<BR><I>Committer's log entry: </I>
Remaining updates for Bugzilla#5013.  

Some attributes that should have been handled as errors were getting
handled as warnings.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/24<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemForEach.java<BR><I>Committer's log entry: </I>
Check that recursionLimit is not negative before calling checkForInfinateLoop.
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/07/25<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<BR><I>Committer's log entry: </I>
fix typo, java for Java in doc on xsltc and external java functions
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/25<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java<BR><I>Committer's log entry: </I>
Applying patch for bug#10839.

Try/catch block needed around System.getProperty call.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/26<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<BR><I>Committer's log entry: </I>
Applying Paul Brown's patch for bug#6972.

xsl:output cdata-section-elements attribute was not handled correctly.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2002/07/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes SingletonIterator.java<BR><I>Committer's log entry: </I>
file SingletonIterator.java was initially added on branch XSLTC_DTM.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java ExsltMath.java ExsltSets.java Extensions.java<BR><I>Committer's log entry: </I>
Committed patch for bugzilla#10323 (incorrect Javadoc 
in the extension code.)
Submitted by Morris Kwan (mkwan@ca.ibm.com)
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<BR><I>Committer's log entry: </I>
Committed patch for bugzilla#10914
( Need better error message for redirect select errors)
Submitted by Morris Kwan (mkwan@ca.ibm.com)
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/07/29<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #9146

NullPointerException when attempting to build a stylesheet from 
a DOM Element instead of a Document node.
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2002/07/30<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>
Applying patches for Morris Kwan for bug 10519.  Changed condition in absoluteURI method to handle the case where the URI is the root of a file system - e.g., / or c:\
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2002/07/30<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java<BR><I>Committer's log entry: </I>
Applying patches for Morris Kwan for bug 10519.  In parse method, if SystemId of the returned DOMSource object is null, systemID is resolved using href.
<BR><BR></LI><LI><I>Committed by </I>amiro@apache.org<I> on </I>2002/08/02<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<BR><I>Committer's log entry: </I>
changed verbage to agree with new support of constructors and nonstatic external java functions
<BR><BR></LI><LI><I>Committed by </I>zongaro@apache.org<I> on </I>2002/08/07<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>
Applying patch for Bug 9683 for Morris Kwan.  If XRTreeFrag is constructed
without respect to an XPathContext, the object() method should defer to the
parent class's object() method to convert the fragment to the appropriate
representation.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/09<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates ElemValueOf.java<BR><I>Committer's log entry: </I>
Patch for bugzilla #6071.  Specifically, this patch allows line numbers to 
be reported when errors are discovered at runtime in a value-of attribute.
(See idkeyerr10.)
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/08/14<BR><I>Modified: </I> xml-xalan/java/src MANIFEST.MF<BR><I>Committer's log entry: </I>
For Bug#6547. Remove reference to old jar files.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/15<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/templates FuncKey.java xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<BR><I>Committer's log entry: </I>
Patch for bug: &quot;The key() function throws an exception when called in the context of a 
local variable.&quot; reported on xalan-dev.

Modified FuncKey.execute to use getDocumentRoot instead of getDocument.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/08/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xpath/axes BasicTestIterator.java<BR><I>Committer's log entry: </I>
For Bug#11123. Fix infinite loop in union expression.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/08/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java<BR><I>Committer's log entry: </I>
For bug#7776. Fix argument passing problem for Java extension.
<BR><BR></LI><LI><I>Committed by </I>mkwan@apache.org<I> on </I>2002/08/16<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<BR><I>Committer's log entry: </I>
See bug#10945. Test if a node is a DTMNodeProxy before casting.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/19<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<BR><I>Committer's log entry: </I>
Patch for bugzilla#11834.  Replaced calls to DTM.getDocument with get 
DTM.getDocumentRoot.
<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>2002/08/21<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java<BR><I>Committer's log entry: </I>
James Riordan's bug -- Attributes on elements returned from
extensions were not being processed successfully. Turns out
our copying logic had a minor sequencing error.

I don't see anything similar listed in Bugzilla.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java/bin xml-apis.jar<BR><I>Committer's log entry: </I>
Replacing xml-apis.jar with the version from the RIVERCOURT1 branch 
of xml-commons.   The xml-commons-1.0.b2 version does not pass
the TCK 1.1 or the TCK 1.2.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan builds.xml<BR><I>Committer's log entry: </I>
Small updates to the build documentation.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>
Updating version numbers to 2.4.0 for new release.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml<BR><I>Committer's log entry: </I>
Updating version numbers to 2.4.0 for new release.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java commits.xml<BR><I>Committer's log entry: </I>
New commits.xml for upcoming Xalan 2.4.0 release.
<BR><BR></LI><LI><I>Committed by </I>ilene@apache.org<I> on </I>2002/08/27<BR><I>Modified: </I> xml-xalan/java/xdocs/sources/xalan history.xml xsltc_history.xml<BR><I>Committer's log entry: </I>
New history.xml, xsltc_history.xml for upcoming Xalan 2.4.0 release.
<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.3.1</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/22/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Make synchronized to address potential reentrancy issue in
 XRTreeFrag.finalize(), as discussed in the Javadoc. This may
 solve several outstanding bug reports regarding reuse of
 Transformers and cache suppression in for-each.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/22/2002<BR><I>Modified: </I>java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>Well, _that_ was dumb... Forgot one &quot;don't dereference if null&quot; test.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/27/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>Just comment<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/27/2002<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>We weren't handling the case where no default-value handling was specified.
 This didn't generally bother us because XSLT never produces an element
 declaration as output... but it did affect TransformerIdentityImpl when the
 source document had an internal subset.

 See xalan-j-users archives, under subject
 &quot;Differences between explicit and implicit parsing for docs with DTDs?&quot;<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/04/2002<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xalan/templates ElemVariable.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 java/src/org/apache/xpath VariableStack.java
 XPathContext.java<BR><I>Committer's log entry: </I>Variable64-66 and a number of variable-related Bugzilla reports: Global
 variables may have their resolution deferred. This was causing their
 content to be placed on the normal variable stack, where it could be
 popped off (arggh) and later overwritten (double arggh). This change
 gives them an independent storage space which is not subject to
 those risks.

 While I was at it, I've also made the VariableStack class a trifle more
 self-documenting by giving some of the fields more meaningful names.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/04/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils IntStack.java<BR><I>Committer's log entry: </I>Bugzilla 6854: Return the stack exception, as documented.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/12/2002<BR><I>Modified: </I>java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>Bugzilla 6156 reopened: Same symptom, different disease -- rather than
 a late finalizer, we simply forgot to reset one field between invocations.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/19/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref TestDTM.java<BR><I>Committer's log entry: </I>Replace old version, which was specific to particular implentations of
 DTM, with one which is specific only to DTMManagerDefault and which
 can be generalized more easily to conduct other tests.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/19/2002<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref TestDTMNodes.java<BR><I>Committer's log entry: </I>No longer in service.

 This supported the old version of TestDTM. New version has
 a node-dumper as an internal subroutine. (If we're going to do
 a display method for other debugging purposes, it should be
 both applicable to all DTMs and -- probably -- built into the
 DTM system.)<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/20/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref TestDTM.java<BR><I>Committer's log entry: </I>Add Apache header, remove import of discarded TestDTMNode.
 At some point, we should consider moving this class to the tests
 directory.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/21/2002<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>Properly catch exception from CharInfo constructor, and try again.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/21/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Put extra check for getAbsoluteURI(String urlString, String base) for absolute
 file paths with no protocol... I think one of the last check-in's wiped this 
out.
 So now, if the path is the form of &quot;x:/x&quot; or &quot;/x&quot; then &quot;file:///&quot; is added to 
it.
 I don't see how this can screw anything up... but I'm sure it will.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/21/2002<BR><I>Modified: </I>java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>Merge from redundent expression elemination branch.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/21/2002<BR><I>Modified: </I>java/src/org/apache/xalan Version.java
 java/src/org/apache/xalan/lib/sql DTMDocument.java
 java/src/org/apache/xalan/processor ProcessorKey.java
 ProcessorPreserveSpace.java
 ProcessorStripSpace.java StylesheetHandler.java
 XSLTAttributeDef.java XSLTElementProcessor.java
 java/src/org/apache/xalan/templates AVT.java AVTPart.java
 AVTPartSimple.java AVTPartXPath.java
 ElemApplyTemplates.java ElemAttribute.java
 ElemCallTemplate.java ElemChoose.java
 ElemCopyOf.java ElemElement.java
 ElemExtensionCall.java ElemForEach.java ElemIf.java
 ElemLiteralResult.java ElemNumber.java
 ElemTemplateElement.java ElemValueOf.java
 ElemVariable.java ElemWhen.java ElemWithParam.java
 FuncDocument.java FuncKey.java Stylesheet.java
 WhiteSpaceInfo.java
 java/src/org/apache/xalan/trace TraceManager.java
 java/src/org/apache/xalan/transformer KeyIterator.java
 KeyManager.java KeyRefIterator.java KeyTable.java
 NodeSorter.java ResultTreeHandler.java
 TransformerHandlerImpl.java
 java/src/org/apache/xml/utils NodeVector.java
 java/src/org/apache/xpath Expression.java VariableStack.java
 XPath.java
 java/src/org/apache/xpath/axes AttributeIterator.java
 AxesWalker.java ChildIterator.java
 ChildTestIterator.java DescendantIterator.java
 FilterExprWalker.java IteratorPool.java
 LocPathIterator.java MatchPatternIterator.java
 OneStepIterator.java OneStepIteratorForward.java
 PredicatedNodeTest.java ReverseAxesWalker.java
 SelfIteratorNoPredicate.java UnionPathIterator.java
 WalkerFactory.java WalkingIterator.java
 WalkingIteratorSorted.java
 java/src/org/apache/xpath/compiler Compiler.java
 java/src/org/apache/xpath/functions FuncBoolean.java
 FuncCount.java FuncExtFunction.java Function.java
 Function2Args.java Function3Args.java
 FunctionMultiArgs.java FunctionOneArg.java
 java/src/org/apache/xpath/objects XBoolean.java
 XNodeSet.java XNodeSetForDOM.java XNumber.java
 XObject.java XRTreeFrag.java
 XRTreeFragSelectWrapper.java XString.java
 XStringForFSB.java
 java/src/org/apache/xpath/operations Bool.java Equals.java
 Operation.java UnaryOperation.java Variable.java
 java/src/org/apache/xpath/patterns FunctionPattern.java
 NodeTest.java StepPattern.java UnionPattern.java<BR><I>Added: </I>java/src/org/apache/xalan/processor WhitespaceInfoPaths.java
 java/src/org/apache/xalan/templates AbsPathChecker.java
 ElemVariablePsuedo.java
 RedundentExprEliminator.java VarNameCollector.java
 XSLTVisitable.java XSLTVisitor.java
 XUnresolvedVariableSimple.java
 java/src/org/apache/xpath ExpressionNode.java
 ExpressionOwner.java XPathVisitable.java
 XPathVisitor.java
 java/src/org/apache/xpath/axes BasicTestIterator.java
 FilterExprIterator.java
 FilterExprIteratorSimple.java
 HasPositionalPredChecker.java NodeSequence.java
 PathComponent.java UnionChildIterator.java
 java/src/org/apache/xpath/operations VariableSafeAbsRef.java<BR><I>Removed: </I>java/src/org/apache/xalan/transformer KeyWalker.java<BR><I>Committer's log entry: </I>Redundent Expression Elimination branch merge.

 Major architectural changes
 1) Rip out cacheing in all iterators, and move the caching into XNodeSet 
(actually NodeSequence where the caching is done derives from XObject and 
XNodeSet derives from NodeSequence).Lots of other changes went into this, 
including rewriting of some of the xsl:key stuff.

 2) Implementation of a Visitor mechanism for the stylesheet and xpath 
components.Each component for an XPath event is passed an ExpressionOwner, 
which just has a getExpression and setExpression method, which allows us to 
create a list of these, and then be able to do rewrites.This should be a 
generally useful mechanism for all sorts of stuff, and should be considered a 
public API.

 3) Implementation of deepEquality methods for all XPath components, which 
allows us to see if two components are equal.

 4) Implementation of RedundentExprEliminator, which is a derivative from the 
new XSLTVisitor class, which runs over the stylesheet collecting xpaths within 
the same scope, and absolute xpaths that are not context dependent.These are 
then each reduced by walking the list and checking for deep equality (though 
global paths are always reduced).Reduction takes place by creating variables 
that have a special namespace and a non-legal local name.Both full and partial 
path reduction done.

 Not done yet: Add back in the xsl:key caching that I ripped out (not a big 
deal).Could be skipped, with some risk.

 Not done yet: Implement isLast function.With the new stuff, the last() 
function will be slower, so, since most cases are just checking to see if an 
item is the last, I want to rewrite foo[last()] patterns to 
foo[xalan:isLast()].Could be skipped, with some risk.

 Davanum performance test result: 4x increase in performance.

 Datapower performance suite results: very slight decrease in overall 
performance.:-(

 Smoke test results: All clear when run with Xerces 1.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/22/2002<BR><I>Modified: </I>java/src/org/apache/xpath DOMHelper.java<BR><I>Committer's log entry: </I>The Node identity test in isNodeAfter()
 (ie., node1 == node2) does not work in some cases,
 so I added a routine to use DTMNodeProxy equals()
 if that test fails.
 This was required to support the new EXSLT
 leading() and trailing() extension functions.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/22/2002<BR><I>Modified: </I>java/src/org/apache/xalan/extensions ExtensionsTable.java
 MethodResolver.java<BR><I>Committer's log entry: </I>1. Registered the EXSLT 'common', 'sets', and 'math'
 namespaces ExtensionsTable.

 2. To handle extension functions (e.g., some EXSLT
 functions) that include a dash in their name, added
 a routine in MethodResolver that maps abc_xyz to
 abcXyz.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/22/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib package.html<BR><I>Added: </I>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java<BR><I>Committer's log entry: </I>Preliminary set of EXSLT extension implementations.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/22/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java Extensions.java<BR><I>Committer's log entry: </I>Added Apache license.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/23/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemApplyImport.java
 ElemApplyTemplates.java ElemAttribute.java
 ElemCallTemplate.java ElemChoose.java
 ElemComment.java ElemCopy.java ElemCopyOf.java
 ElemFallback.java ElemForEach.java ElemIf.java
 ElemMessage.java ElemNumber.java ElemPI.java
 ElemParam.java ElemTemplate.java
 ElemTextLiteral.java ElemUse.java ElemValueOf.java
 ElemVariable.java
 java/src/org/apache/xalan/trace TraceListenerEx.java
 TraceManager.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Added: </I>java/src/org/apache/xalan/trace TraceListenerEx2.java<BR><I>Committer's log entry: </I>Implemented TraceListenerEx2, which extends TraceListenerEx to add
 the traceEnd event.

 Modified all existing templates that call fireTraceEvent to also call
 fireTraceEndEvent at the appropriate time.

 Note that there was a bad incompatibility between xsl:for-each and
 xsl:if, which was called whether the test was successful or not.
 With the current logic of xsl:for-each,
 if the node-set is empty trace will not be called at all.
 So I've changed xsl:if to match the xsl:for-each behavior.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/24/2002<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Set the DEVELOPMENT number to 1, in prep for a developer's release.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/24/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemForEach.java<BR><I>Committer's log entry: </I>Make sure the current element is nulled out if debug mode so that
 TransformerImpl#getElementCallstack works correctly.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/24/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemElement.java<BR><I>Committer's log entry: </I>Added fire trace events, which seemed to be missing.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/24/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Added getElementCallstack() and getTemplateCallstack() methods, for support
 of xsl debuggers.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/24/2002<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Changed the release number to 4, since new functionality has been added.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemApplyTemplates.java<BR><I>Committer's log entry: </I>Fix Frank Weiss bug, which has to do with the currentFrameBottom not being
 restored properly when inside a with-param.

 Fix Cristina bug where the traceEnd event was being passed the wrong template.

 Fix problem with RTF pruning where push/popRTFContext wasn't being called
 for xsl:apply-templates.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2002<BR><I>Modified: </I>java/src/org/apache/xalan/trace TraceListenerEx2.java<BR><I>Committer's log entry: </I>Fix JavaDoc comment.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2002<BR><I>Modified: </I>java/src/org/apache/xalan/trace PrintTraceListener.java<BR><I>Committer's log entry: </I>Handle TraceListenerEx2, even though we don't do anything with the extra 
methods.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Fix problem with the SAXSourceLocator not getting the line number info.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils SAXSourceLocator.java<BR><I>Committer's log entry: </I>Add a constructor that takes a SourceLocator.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/28/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemTemplateElement.java<BR><I>Committer's log entry: </I>Added getOwnerXSLTemplate method, a convenience function.
 Implemented getLocalName().<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/28/2002<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetHandler.java
 ProcessorTemplateElem.java<BR><I>Committer's log entry: </I>Addressing http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6752.
 Make the processor more robust against multiple failures during compilation.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/28/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XNull.java<BR><I>Committer's log entry: </I>Change derivation to XNodeSet.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xpath XPathProcessorException.java
 XPathException.java<BR><I>Committer's log entry: </I>Pass in the parent ExpressionNode, so that more context information can be
 set. For the moment, I've added methods that are dependent on the
 XSLT module, to set the source stylesheet node. I'll deal with this more when
 I deal with the proper breakup and packaging of the XPath package, in a
 few days.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XObject.java<BR><I>Committer's log entry: </I>Pass this as ExpressionNode to the XPathException object on error, which
 helps us to establish context information for the exception object.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>Add constructor that lets us set the owning ExpressionNode.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>For getCurrentElement, add some protection for access when there is no
 current element.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemVariable.java
 ElemWithParam.java<BR><I>Committer's log entry: </I>Pass the template to the XRTreeFrag constructor, so we can establish
 better context.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/29/2002<BR><I>Modified: </I>java/src/org/apache/xpath XPathException.java<BR><I>Committer's log entry: </I>Set the &quot;StylesheetNode&quot; to the ElemTemplateElement instead of the
 DOM backpointer.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/02/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Wrap runtime exception in TransformerException, so we'll get line number info
 when NPE and the like.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/02/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XRTreeFrag.java<BR><I>Committer's log entry: </I>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7622.
 1) Transform#1 creates an XRTreeFrag. This has a reference to a DTM, that in 
turn is registered with a DTMManager. The DTM will need to be deleted from the 
DTMManager when the XRTreeFrag is deleted. The XRTreeFrag also contains a 
reference to the XPathContext.
 2) Transform#1 completes. The XPathContext is reset... namely the a bunch of 
structures are reset or rebuilt, including DTMManagerDefault#m_dtms. BUT, the 
XRTreeFrags are still hanging around, waiting to unregister themselves.
 3) Transform#2 starts humming along. It builds a XRTreeFrag and installs 
that RTF DTM into DTMManagerDefault#m_dtms[2].
 4) The finalizer thread wakes and decides to delete some of those old 
XRTreeFrags from Transform#1.
 5) The XRTreeFrag#finalize() method references through the XPathContext, and 
deletes what it thinks is it's DTM from DTMManagerDefault#m_dtms[2] (via 
getDTMIdentity(dtm)).
 6) Transform#2 tries to reference DTMManagerDefault#m_dtms[2], finds it is 
null, and chaos results.

 ...so, before calling xctxt.release, etc., check to make sure the DTM is 
actually
 entered in the current DTMManager.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/04/2002<BR><I>Added: </I>java/src/org/w3c/dom/xpath COPYRIGHT.html
 XPathEvaluator.java XPathException.java
 XPathExpression.java XPathNSResolver.java
 XPathNamespace.java XPathResult.java<BR><I>Committer's log entry: </I>Add Document Object Model (DOM) Level 3 XPath Specification.
 (Temp until it's added to xml-commons.)<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/05/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>On entry, set the document base URI in the DTM. Fixes bug reported
 by Christine.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/09/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Fix inconsistancy in handling returned DTM IDs. (There's room for
 debate about whether the current value -- expressed as the
 NodeHandle for Node 0 in that DTM -- is the best possible
 representation, but this is what we're currently using...)<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/09/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>Clean-up of dumpDTM method, some code clarity changes.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/09/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Yeowch. Didn't mean to check in the XNI experiment.
 Disabled, probably belongs on a branch. (And probably
 needs to be rewritten fairly intensively, since the current
 hook is something of a kluge!)<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/09/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>(nitpicking)<BR><BR></LI><LI><I>Committed by </I>pauldick@apache.org<I> on </I>04/10/2002<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref TestDTM.java<BR><I>Committer's log entry: </I>Moved into Test directory<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/10/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Cleaner disabling of experimental code. Sorry 'bout that.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/10/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDefaultBaseIterators.java
 DTMDefaultBaseTraversers.java
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Change extended types to be an integer and use a structure with a localname, 
a namespace and a nodetype to represent the node extended type. We no longer 
need to do the shifting left and right that we did for the previous extended 
types.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/10/2002<BR><I>Modified: </I>java/src/org/apache/xpath/operations Variable.java
 java/src/org/apache/xpath/patterns NodeTest.java<BR><I>Committer's log entry: </I>Change extended types to be an integer and use a structure with a localname, 
a namespace and a nodetype to represent the node extended type. We no longer 
need to do the shifting left and right that we did for the previous extended 
types.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/10/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemForEach.java TemplateList.java
 VarNameCollector.java<BR><I>Committer's log entry: </I>Change extended types to be an integer and use a structure with a localname, 
a namespace and a nodetype to represent the node extended type. We no longer 
need to do the shifting left and right that we did for the previous extended 
types.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Added: </I>java/src/org/apache/xml/dtm XSequence.java<BR><I>Committer's log entry: </I>Creating a new branch, Xalan3, for experimentation with XPath2 support.

 Currently the changes are limited to org.apache.xml.dtm -- enabling
 datatype support by tying into Xerces' low-level XNI layer, which
 includes experimental support for post-schema-validation Infoset
 (PSVI) information. Eventually we'll be patching other portions of
 Xalan to actually retrieve and use this data.

 The code I'm now checking in is NOT in final form. Known issues:

 1) The logic in DTMManager which enables this behavior is
 something of a kluge -- it only kicks in if you parse incrementally
 from a StreamSource. The getDTM() method really wants to be
 rationalized somewhat, which will make adding XNI easier.

 2) The storage for datatype information currently adds another
 column to the DTM table. We really want to switch to associating
 the datatype with the Expanded Type table, and using some form
 of sparse array to record local overrides.

 3) The XNI code won't compile without Xerces2. We need to think
 about whether we want to accept that as a dependency, or use
 reflection to bind at run time rather than compile time.

 Note that typed values are currently computed on demand, with the
 DTM storing only the sting values. An argument could be made for
 precomputing some or all of this information and instead generating
 strings on demand (see the XPath2 Data Model spec for discussion
 of that alternative). But that's a considerably larger change, and
 would affect non-type-based users of XSLT as well since it would
 present values in their normalized form rather than as entered; I'd
 rather not go that route until we have a string-based alternative
 fully functional.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Added: </I>java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<BR><I>Committer's log entry: </I>Creating a new branch, Xalan3, for experimentation with XPath2 support.

 Currently the changes are limited to org.apache.xml.dtm -- enabling
 datatype support by tying into Xerces' low-level XNI layer, which
 includes experimental support for post-schema-validation Infoset
 (PSVI) information. Eventually we'll be patching other portions of
 Xalan to actually retrieve and use this data.

 The code I'm now checking in is NOT in final form. Known issues:

 1) The logic in DTMManager which enables this behavior is
 something of a kluge -- it only kicks in if you parse incrementally
 from a StreamSource. The getDTM() method really wants to be
 rationalized somewhat, which will make adding XNI easier.

 2) The storage for datatype information currently adds another
 column to the DTM table. We really want to switch to associating
 the datatype with the Expanded Type table, and using some form
 of sparse array to record local overrides.

 3) The XNI code won't compile without Xerces2. We need to think
 about whether we want to accept that as a dependency, or use
 reflection to bind at run time rather than compile time.

 Note that typed values are currently computed on demand, with the
 DTM storing only the sting values. An argument could be made for
 precomputing some or all of this information and instead generating
 strings on demand (see the XPath2 Data Model spec for discussion
 of that alternative). But that's a considerably larger change, and
 would affect non-type-based users of XSLT as well since it would
 present values in their normalized form rather than as entered; I'd
 rather not go that route until we have a string-based alternative
 fully functional.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm Tag: Xalan3 DTM.java
 java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMDefaultBase.java DTMDocumentImpl.java
 DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java
 java/src/org/apache/xml/dtm/ref/sax2dtm Tag: Xalan3
 SAX2DTM.java<BR><I>Committer's log entry: </I>Creating a new branch, Xalan3, for experimentation with XPath2 support.

 Currently the changes are limited to org.apache.xml.dtm -- enabling
 datatype support by tying into Xerces' low-level XNI layer, which
 includes experimental support for post-schema-validation Infoset
 (PSVI) information. Eventually we'll be patching other portions of
 Xalan to actually retrieve and use this data.

 The code I'm now checking in is NOT in final form. Known issues:

 1) The logic in DTMManager which enables this behavior is
 something of a kluge -- it only kicks in if you parse incrementally
 from a StreamSource. The getDTM() method really wants to be
 rationalized somewhat, which will make adding XNI easier.

 2) The storage for datatype information currently adds another
 column to the DTM table. We really want to switch to associating
 the datatype with the Expanded Type table, and using some form
 of sparse array to record local overrides.

 3) The XNI code won't compile without Xerces2. We need to think
 about whether we want to accept that as a dependency, or use
 reflection to bind at run time rather than compile time.

 Note that typed values are currently computed on demand, with the
 DTM storing only the sting values. An argument could be made for
 precomputing some or all of this information and instead generating
 strings on demand (see the XPath2 Data Model spec for discussion
 of that alternative). But that's a considerably larger change, and
 would affect non-type-based users of XSLT as well since it would
 present values in their normalized form rather than as entered; I'd
 rather not go that route until we have a string-based alternative
 fully functional.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Removed: </I>java/src/org/apache/xml/dtm XSequence.java
 java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<BR><I>Committer's log entry: </I>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Added: </I>java/src/org/apache/xml/dtm Tag: Xalan3 XSequence.java<BR><I>Committer's log entry: </I>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/12/2002<BR><I>Added: </I>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 DTM_XSequence.java XNI2DTM.java<BR><I>Committer's log entry: </I>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<BR><BR></LI><LI><I>Committed by </I>santiagopg@apache.org<I> on </I>04/15/2002<BR><I>Modified: </I>java/src/org/apache/xalan/xsltc Tag:
 jaxp-ri-1_2_0-fcs-branch DOM.java<BR><I>Committer's log entry: </I>New implementation of xsl:element<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/17/2002<BR><I>Modified: </I>java/src/org/apache/xpath/compiler XPathParser.java<BR><I>Committer's log entry: </I>Improve recovery if user's error handler insists on trying to
 continue past a fatal error in the XPath syntax. Ideally, this
 mechanism should be cleaned up and applied across the
 entire XPath grammar. But for now, I'm addressing the one
 specific complaint in a way that can be expanded later, and
 doing so in a way that minimizes costs.

 (In fact, one can argue that since this is a rare event, we
 shouldn't be minimizing the cost quite so much, and should
 be throwing new exception objects rather than reusing a
 preconstructed one.)<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/17/2002<BR><I>Modified: </I>java/src/org/apache/xpath/compiler XPathParser.java<BR><I>Committer's log entry: </I>Decided I _was_ overoptimizing.

 Saving memory in tne non-error case trumps saving it in the error case.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/17/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates Tag: XSLTC_DTM
 ElemApplyTemplates.java
 java/src/org/apache/xalan/xsltc Tag: XSLTC_DTM DOM.java
 DOMCache.java NodeIterator.java Translet.java
 java/src/org/apache/xalan/xsltc/cmdline Tag: XSLTC_DTM
 Transform.java
 java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
 AbsolutePathPattern.java AncestorPattern.java
 Constants.java CopyOf.java DocumentCall.java
 ForEach.java IdKeyPattern.java Import.java Key.java
 KeyCall.java LastCall.java Mode.java NameBase.java
 NodeTest.java ParentLocationPath.java Parser.java
 ProcessingInstructionPattern.java Step.java
 StepPattern.java Stylesheet.java
 SyntaxTreeNode.java UnionPathExpr.java XSLTC.java
 java/src/org/apache/xalan/xsltc/compiler/util Tag: XSLTC_DTM
 MethodGenerator.java NodeSetType.java
 ResultTreeType.java
 java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
 AbsoluteIterator.java AnyNodeCounter.java Axis.java
 BitArray.java CurrentNodeListFilter.java
 CurrentNodeListIterator.java DOMAdapter.java
 DOMImpl.java DTDMonitor.java DocumentCache.java
 DupFilterIterator.java FilterIterator.java
 FilteredStepIterator.java KeyIndex.java
 LoadDocument.java MatchingIterator.java
 MultiDOM.java MultipleNodeCounter.java
 NodeCounter.java NthIterator.java
 ReverseIterator.java SingleNodeCounter.java
 SingletonIterator.java SortingIterator.java
 StepIterator.java UnionIterator.java
 java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
 AbstractTranslet.java BasisLibrary.java
 Constants.java DefaultRun.java SAXAdapter.java
 java/src/org/apache/xalan/xsltc/trax Tag: XSLTC_DTM
 TransformerHandlerImpl.java TransformerImpl.java
 XSLTCSource.java
 java/src/org/apache/xml/dtm Tag: XSLTC_DTM DTM.java
 DTMAxisIterator.java DTMManager.java
 java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
 DTMAxisIteratorBase.java DTMDefaultBase.java
 DTMDefaultBaseIterators.java DTMNamedNodeMap.java
 DTMNodeList.java DTMNodeProxy.java
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/dom2dtm Tag: XSLTC_DTM
 DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm Tag: XSLTC_DTM
 SAX2DTM.java<BR><I>Added: </I>java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
 SAXImpl.java XSLTCDTMManager.java<BR><I>Committer's log entry: </I>Checking in a branch of xalan where XSLTC is using the DTM interface. This 
branch is very unstable, please do not use yet!!!<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/17/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm Tag: XSLTC_DTM
 DOM2DTM.java<BR><I>Committer's log entry: </I>Make getNumberOfNodes() public<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/18/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>XNI support now always used if available, with SAX as fallback.

 Issues: DTMDefaultManager is still a bit more aware of Xerces2
 than I want it to be. And the kluge of creating an Incremental Xerces
 source and then running it non-incrementally, while producing
 straightforward code, is a slightly ugly mixed metaphor.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/18/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<BR><I>Committer's log entry: </I>Minor polishing, disabling debugging dump.

 We currently pass most of Smoketest with the new XNI code enabled.
 Some suspicious stuff in the API tests; my attempts to disentangle
 the XNI and SAX support may not have been 100% succesful.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/18/2002<BR><I>Modified: </I>java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
 SAXImpl.java
 java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
 DTMDefaultBaseIterators.java
 java/src/org/apache/xpath/compiler Tag: XSLTC_DTM
 XPathParser.java<BR><I>Committer's log entry: </I>Misc fixes<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/22/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Bug 4546 -- thanks to Wolfram Eisert for tracking this down and
 proposing the patch.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/29/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>Easy enable/disable of XNI support for testing purposes,
 and some error-reporting cleanup. We still fail a few API tests
 in XNI mode, mostly related to error handling.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/29/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm Tag: Xalan3 DTM.java
 java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMDefaultBase.java DTMDefaultBaseIterators.java
 DTMDefaultBaseTraversers.java
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/dom2dtm Tag: Xalan3
 DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm Tag: Xalan3
 SAX2DTM.java<BR><I>Committer's log entry: </I>Merge ExtendedType changes from main branch<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/02/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 ExpandedNameTable.java<BR><I>Committer's log entry: </I>Oops. Typo.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/02/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 ExpandedNameTable.java
 IncrementalSAXSource_Xerces.java
 java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<BR><I>Committer's log entry: </I>Make sure current version checked in before I start experimenting with 
alternatives.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/02/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<BR><I>Committer's log entry: </I>It helps if we actually remember to store the schema info...<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/03/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<BR><I>Committer's log entry: </I>Xalan3 PSVI changes: Lighter-weight storage for PSVI datatype. Schema
 type first seen is now stored as part of the ExpandedName. In many cases
 all instances of the same node have the same type and this should suffice.
 In some cases tthe actual type may be locally overridden (schema
 derived types), and XNI2DTM will record an exception into a simple
 &quot;sparse vector&quot;.

 Storage improved. DTM construction speed improved. Schema type
 retrieval speed adversely impacted but -- one hopes -- not significantly.

 Of course right now Xerces' schema-validator burns so many cycles
 that our own efficiency or lack thereof is completely moot... but we
 assume they'll be improving that over time.<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/06/2002<BR><I>Modified: </I>java/src/org/apache/xpath/compiler XPathParser.java<BR><I>Committer's log entry: </I>Remove the duplicated ;;

 ( which broke the JDK1.4 compilation which in turn broke all the gump
 deps ).<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/06/2002<BR><I>Modified: </I>java/src/org/apache/xpath/axes PredicatedNodeTest.java<BR><I>Committer's log entry: </I>Bugzilla 7159 -- Just an access-permission change, for improved
 toolability.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>05/09/2002<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToText.java<BR><I>Committer's log entry: </I>Bugzilla 8358 -- bad method signature. I've created a new method
 with the correct signature. The old one may or may not be entirely
 superfluous, but I don't want to muck with it right now.<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>

<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.3 and 2.3.1</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>johng@apache.org<I> on </I>01/17/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql XConnection.java<BR><I>Committer's log entry: </I>Fixed second connection problem<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>01/17/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Update for new DTM Model<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>01/17/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql DTMDocument.java<BR><I>Committer's log entry: </I>Update for new DTM Model<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>01/17/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java
 DTMDocument.java<BR><I>Committer's log entry: </I>Removed Debug<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/18/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Whups. There's a possible reentrancy problem when data
 is being serialized from an FSB, thru Sax, back into a new
 chunk of the same FSB; if the append causes a rechunking,
 the serialize loop may break.

 TEMPORARY PATCH; permanant fix to follow. See comments.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/18/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils SuballocatedIntVector.java<BR><I>Committer's log entry: </I>&lt;blush&gt;Wrong side of the fencepost...&lt;/blush&gt;<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/23/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemTemplate.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xml/dtm DTMManager.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
 java/src/org/apache/xpath XPathContext.java<BR><I>Added: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<BR><I>Committer's log entry: </I>These changes allow us to store multiple Result Tree Fragment (RTF)
 document trees (used when an XSLT variable contains a constructed
 set of nodes) into a single DTM object rather than using a new DTM
 for each RTF. They also permit &quot;tail-pruning&quot; this shared DTM to
 reuse that space as the variables go out of scope.

 The result is a slight performance improvement, and a much more
 significant improvement in storage efficiency. Stylesheets which
 use RTFs heavily should now run in much less memory; in
 one testcase, our &quot;working set&quot; heap size (storage actually in
 use, not counting objects released but not yet GC'd) dropped
 from 12-15MB down to 3-6MB, and heap churn (how quickly
 storage was being allocated and discarded) also reduced
 substantially.

 The code changes needed to support this new scheme are
 surprisingly small. And I believe it may be possible to reduce them
 further, if we're willing to merge the SAX2RTFDTM subclass back
 into its SAX2DTM superclass. I believe that could be done with
 very little adverse impact on other uses of SAX2DTM... but I felt it
 was safer to defer that decision for now.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>01/25/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Bug 5982 and 6022. The variable stack was not being cleared accross 
transforms so that when the transformer is reused, we were using nodesets from 
the previous transform which were using a different DTM. Note that we want keep 
any variables that have been set externally by the user (using 
Transformer.setParameter()).<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>01/28/2002<BR><I>Modified: </I>java/src/org/apache/xpath/res XPATHErrorResources.java<BR><I>Committer's log entry: </I>bug 4762: Fixed the duplicate error message in XPATH.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/28/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Bugzilla 4054: Retain previously set output properties when adding new ones.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>01/28/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Bug 5872. We were using a constructor of TranformerException without the 
locator information. Changed to code to use a locator if info is available.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>01/30/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib NodeInfo.java<BR><I>Committer's log entry: </I>Changed &quot;system id&quot; to &quot;public identifier&quot; in javadoc
 comments for publicId() methods.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/30/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Bugzilla 2617, part 1: Construct the data structures and access them 
correctly.
 Ignore too-late-to-be-safe requests to enable this feature.

 This doesn't resolve how to rewrite higher-level code so it makes the
 request early enough to be useful.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>01/30/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates StylesheetComposed.java
 StylesheetRoot.java TemplateList.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Bug 4987: Changed Apply-imports logic to only apply imports to stylesheets 
that are direct imports. The logic for includes has not changed, we will 
apply-imports to any stylesheet that is imported as a result of an inclusion. 
Note: had to change the order when includes and imports are recomposed!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/31/2002<BR><I>Modified: </I>java/src/org/apache/xalan/lib NodeInfo.java
 java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
 SAX2RTFDTM.java
 java/src/org/apache/xml/utils DefaultErrorHandler.java<BR><I>Committer's log entry: </I>Bugzilla 2617: Recreated missing code, changed controls to ensure
 that this mode gets set early enough to be useful and can't be broken
 by being turned on and off during execution.

 NOTE: Current implementation relies on a global static flag in
 TransformerFactoryImpl. We need to rearchitect our APIs slightly
 so configuration hints of this kind can be passed down from top-level
 objects to the back-end code more elegantly. Revisit in future
 releases.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>01/31/2002<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemApplyTemplates.java<BR><I>Committer's log entry: </I>Bug 5505: Need to resolve params before we do anything else, so move code 
that does that above the code that sets up the different node stacks.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/01/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Bugzilla 6182. Darned fence posts; always either too many or not enough... 
&lt;grin/&gt;<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/01/2002<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java
 XPathContext.java<BR><I>Committer's log entry: </I>Bug 6156: Change variable stack reset to just get a new object. Also make 
sure that the stack of result tree fragments is also cleaned ot during a reset.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/04/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XBoolean.java
 XNodeSet.java XNumber.java XObject.java
 XRTreeFrag.java XString.java
 java/src/org/apache/xpath/operations Equals.java<BR><I>Committer's log entry: </I>Bug 5851: Make sure that the equal operation is evaluated by order of 
precedence of the operands, as defined by XSLT.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/04/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 5346: Prevent mantissa overflow when converting string to double.
 There is still a possible edge-case, since I detect overflow on decimal digit
 bounds rather than on bit bounds; I'm not sure what the IEEE spec calls for.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/04/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 5346: My first-cut messed up fractional values. This one is
 somewhat better.

 There's an open issue w/r/t numbers with many digits after the
 decimal point, regarding limits on how large a power of 10 can
 be contained in a long. In that one case I'm falling back on successive
 divisions (though as few as possible), and some loss of precision
 may result.

 Need to find a better algorithm...<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/04/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 5346: Oops. Forgot to take out a debugging printout.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/05/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 5346: Responding to the re-open; more direct and reliable
 edge-case test. This does lose a few low bits on many-digit values,
 so it is not the best long-term solution.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/05/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bug 5346: One more (last, I hope) edge case.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/05/2002<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bug 5346: Gaaah. This regressions was just plain foolish flailing. &quot;Less 
haste, more speed.&quot;<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/05/2002<BR><I>Modified: </I>java/src/org/apache/xalan/serialize CharInfo.java<BR><I>Committer's log entry: </I>Bug 5857: Reusing objects that reuse objects has threading concerns.
 Three possible solutions: Don't reuse, synchronize reuse, or rewrite
 to avoid using the objects in the first place. See comments in code.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/06/2002<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Bug 4244: Incremental wasn't setting up correctly for the
 DTDHandler stream. It never occurred to me that XSLT would
 ever have a use for unparsed entities...<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>02/06/2002<BR><I>Modified: </I>java/src/org/apache/xalan Version.java
 java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Whoops! Never updated release number to 2.3 in these version files!<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>02/06/2002<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>updated version number to 2.3<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/07/2002<BR><I>Modified: </I>java/src/org/apache/xpath SourceTreeManager.java<BR><I>Committer's log entry: </I>Bug 6304: Remove print stacktrace<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/08/2002<BR><I>Modified: </I>java/src/org/apache/xalan/extensions
 XSLProcessorContext.java
 java/src/org/apache/xalan/lib/sql DTMDocument.java
 java/src/org/apache/xalan/templates ElemForEach.java
 FuncDocument.java FuncKey.java
 java/src/org/apache/xalan/transformer KeyIterator.java
 TransformerHandlerImpl.java TransformerImpl.java
 java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDefaultBaseIterators.java DTMDocumentImpl.java
 DTMNodeProxy.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java
 java/src/org/apache/xpath/axes IteratorPool.java<BR><I>Committer's log entry: </I>Bugzilla 6314: Additional support changes for multiple RTFs per DTM.
 Many files affected, but the basic change is that dtm.getDocument()
 with no arguments is meaningless when there are multiple docs in
 a single DTM object; instead, folks should use the new getRootNode()
 method or getOwnerDocument(), both of which take a node as input
 and thus more clearly identify which document we're referring to.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>02/12/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Bugzilla 6328, whitespace normalization. Late fix, but it was a genuine 
regresion.
 This code could still do with a rationalization pass; I think it can be made 
slightly
 a touch faster.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>02/14/2002<BR><I>Modified: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Update various .jar sizes for recent builds and 2.3.0<BR><BR></LI></UL>
</FONT></TD></TR></TABLE><BR>   
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>Following a series of Developer releases, Xalan-Java 2.2 represents a stable, production-quality release with 
the <A href="dtm.html">DTM (Document Table Model)</A>. Xalan-Java uses the DTM to represent the XML source document 
to be transformed. Please send your feedback to the <A href="mailto:xalan-dev@xml.apache.org">Xalan Development Mailing List</A>.</P>
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>dleslie@apache.org<I> on </I>11/30/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>updated version number to 2.2.D14<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>11/30/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>updated version number to 2.2.D14<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/03/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>Bugzilla 5242: Special-case initializing iteration from Document node -- 
one-liner wasn't safe.<BR><BR></LI><LI><I>Committed by </I>tmiller@apache.org<I> on </I>12/04/2001<BR><I>Added: </I>java/src/org/apache/xalan/xsltc ProcessorVersion.java<BR><I>Committer's log entry: </I>new class to version xsltc software<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Additional debugging printouts, added while analysing Bugzilla 5272 but 
generally useful.
 No functional change, and should be optimized away when DEBUG is set false.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Removed the &quot;magic&quot; default which causes us to switch into incremental
 processing mode whenever we were writing to Standard Output (ie,
 -OUT had not been specified). If you want incremental processing,
 please use the (relatively new) -INCREMENTAL switch to explicitly
 request it.

 (The automatic switchover was causing some confusion
 when testing against Xerces2. )<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/10/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMManagerDefault.java<BR><I>Committer's log entry: </I>Efficiency improvement to the new DTM &quot;overflow addressing&quot; scheme.
 In some tests, this one alteration shaved about 30% off the runtime.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/11/2001<BR><I>Modified: </I>java/src/org/apache/xpath CachedXPathAPI.java
 XPathContext.java<BR><I>Committer's log entry: </I>Changes requested by the xml-security group:

 1) Provide something a constructor that allows sharing the
 XPathContext object between CachedXPathAPI objects

 2) Add getXPathContext(). I'm just a bit nervious about this
 method, but they assure us they need it and the field isn't
 private. We may need to discus this one further.

 3) Make the XPathContext's m_dtmManager member
 protected rather than private, so their subclass can get to it.
 We may want to work with them to understand why they're
 accessing this directly and whether there's a better solution.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>Bugzilla5272 patch suggested by Sandy Gao.

 This startup sequence for incremental SAX parsing under Xerces2
 really is excessively complicated and excessively fragile as a result.
 Not to mention being underdocumented. We really need to push the
 Xerces folks to provide a simple incremental SAX API, similar to that
 in the Xerces1incremental prototype.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Part 1 of 2: Reducing initial space requirements of a DTM. This may
 involve a slight performance hit, but should help stylesheets which
 generate a lot of Result Tree Fragment. Part 2 of this change will be
 checked in after I resolve a bug in whitespace normalization.

 Note that a better long-term answer will be to reduce the number of
 DTMs tied up as RTFs, by doing a better job of discarding or reusing
 them when we're done with them. There are some issues regarding
 exactly what their lifetimes will be when assigned to variables,
 especially when one variable is used to build another, which we
 need to address before we can make that change.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Part 2a of 2: Reducing initial space requirements of a DTM. This may
 involve a slight performance hit in some circumstances due to
 smaller and more complex subdivision of FastStringBuffers,, but
 should help stylesheets which generate a lot of Result Tree
 Fragments.

 Note that a better long-term answer will be to reduce the number of
 DTMs tied up as RTFs<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Part 2b of 2: Reducing initial space requirements of a DTM. This may
 involve a slight performance hit in some circumstances due to
 smaller and more complex subdivision of FastStringBuffers,, but
 should help stylesheets which generate a lot of Result Tree
 Fragments.

 (Leveraging FSB's features more strongly exposed a bug in
 whitespace normalization, which I've fixed.)

 Note that a better long-term answer will be to reduce the number of
 DTMs tied up as RTFs<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/14/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils AttList.java<BR><I>Committer's log entry: </I>Two goofs: Forgetting to use the namespace-aware DOM call, and
 forgetting to check for a returned null before dereferencing.

 How long has _that_ been lurking in the undergrowth?!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/14/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SuballocatedIntVector.java<BR><I>Committer's log entry: </I>Finally following up on an old hunch, I switched from /% addressing
 to shift-and-mask. Big improvement!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/14/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Performance improvements; Some changes to better leverage the
 DOM's existing code, others to avoid some call-and-return overhead.

 Combined with other recent changes, we've now got a significant
 speedup over D14 on some tests. We may want to drop the scheduled
 December 17th 2.2 release and instead bring 2.2 out on 1/14 (which is
 when we'd planned 2.3) with performance gains and Xerces2 support.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 DOM2DTMdefaultNamespaceDeclarationNode.java<BR><I>Committer's log entry: </I>A few more subtle performance tweaks, and an actual bug.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>12/20/2001<BR><I>Added: </I>java/src/org/apache/xml/utils ListingErrorHandler.java<BR><I>Committer's log entry: </I>Alternate ErrorHandler/ErrorListener implementation that allows
 configuration and prints errors out similarly to javac<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>12/21/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils AttList.java<BR><I>Committer's log entry: </I>Bugzilla 5496; previously unimplemented functions.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>01/03/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils DOMBuilder.java<BR><I>Committer's log entry: </I>[Bug 5528] DOMBuilder mixed DOM Level 1 and 2<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>01/11/2002<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>updated release number to 2.2.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>01/11/2002<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>updated release number to 2.2.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>01/13/2002<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Fix Bugzilla#5701: incorrect resolution of certain kinds of absolute file: 
URIs
 Note: This definitely seems to be more correct in terms of resolving URIs
 vis-a-vis RFC 2396 than it used to be. The only user case which might now
 fail where it used to work is a user that supplies an incorrect
 'file:subdir/blah' that they intended to be a relative URI (technically
 it is an absolute URI no matter which way you look at it); this might
 lead to a change in behavior in this particular case, although the behavior
 before was incorrect.
 The major risk factor could be if there are other parts of Xalan code that 
rely
 on the previously incorrect behavior, but I can't find any, and the whole test
 suite runs and passes normally.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>01/14/2002<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Fix Bugzilla#4678 and Bugzilla#5533: call setSystemId on StreamResult
 in Process command line class; ignored if using System.out
 This should enable the redirect extension to properly put it's redirected
 output in a location relative to the output if possible; previously it
 always put redirected output relative to the input since it
 never had the systemId of where the output should be<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>   
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D14</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>Xalan-Java 2.2.D14 is intended to be the final release in the current series of Developer releases incorporating
     the <A href="dtm.html">DTM</A>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
     standard &quot;User&quot; release. Accordingly, we plan to release Xalan-Java 2.2 soon.</P>
     <P>Xalan-Java 2.2.D14 also includes a new <A href="apidocs/org/apache/xpath/CachedXPathAPI.html">CachedXPathAPI</A> class that
     provides an enhanced alternative to the XPath convenience methods in <A href="apidocs/org/apache/xpath/XPathAPI.html">XPathAPI</A>.</P>
     <P>Beginning with 2.2.D12, xalan.jar contains just the Xalan-Java implementation. The source files for the SAX level 2, DOM 2, 
     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<A href="http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/" target="_top">xml-commons/java/external/src</A>), and are built as
     xml-apis.jar. These interfaces are shared by a number of tools, so placing them in their own jar simplifies coordination and reduces 
     the risk of duplication. <B>To run Xalan-Java, you must add xml-apis.jar to your classpath.</B> See <A href="getstarted.html#classpath">Setting up the system class path</A>.</P>
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Reorder slightly and add test to not synthesize xmlns:xsl declaration
 if one was already present on the DOM's root element.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan Version.java<BR><I>Committer's log entry: </I>D13 internal version number update<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>D13 internal version number update<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeList.java<BR><I>Committer's log entry: </I>Bugzilla4842, secondary complaint (glitch in getChildren)... &lt;blush/&gt;<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/15/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Bugzilla4842: Expand the proxy layer to support more of the DOM API.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/15/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Namespace decls are themselves not namespace-aware, in the
 Namespaces 1.0 REC. Use the qname.Grumble.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/20/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>&quot;Tupograflica eror&quot;. Sorry 'bout that!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/26/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Sigh. The XML Namespaces spec it itself imperfectly
 namespace-aware. While there's a plan to fix that, it's
 safer for now if we test the QName when looking for
 explicit instances of xmlns:xml in the source document.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql DTMDocument.java
 java/src/org/apache/xalan/templates ElemApplyTemplates.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/dtm DTMManager.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDefaultBaseIterators.java
 DTMDefaultBaseTraversers.java
 DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Another fairly large change in the DTM architexture (sic)....

 We've changed DTM's internal behavior so it can now assign
 more than one &quot;DTM ID&quot; to a single document, cascading from
 one ID to the next. This means that the size of a single DTM is
 no longer limited by the bits available in the low part of the DTM
 Node Handle. This means we can support larger documents.

 That has allowed us to reduce the number of bits reserved
 for that portion of the node addresing scheme... which in turn has
 increased the number of bits available for use in the DTM ID. This
 means we can now have many more documents active at once.

 The trade-off is that huge documents will require more than one
 DTM ID and thus cut into the number of documents, But since we
 now have 16 bits of DTM ID space, I don't think we're really likely
 to run into both limits at once. And the changes are essentially
 limited to the DTM layer; the rest of Xalan should be unaffected.

 In the process of making this change, I've also encapsulated the
 conversions between DTM API node handles and DTMDefaultBase's
 internal node indices. That should be safer all 'round.

 NOTE: One side effect of this change is that the strings
 generated by the key() function have changed again.
 I've updated the IDKEY testcases to reflect this.

 Smoketest is currently passing everything except
 axes109 and the API's TraceListenerTest . But I believe
 those failures are due to a glitch in my test directory
 since they also happen when I run the D13 code there,
 whereas D13 runs fine in the directory where I built it.
 I'm going to assume that &quot;same result is no new bug&quot;
 for now.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/26/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref
 DTMDefaultBaseTraversers.java<BR><I>Committer's log entry: </I>Found the glitch causing the axes108 bug -- exptype/type.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Added option to set the recursion limit (which we're having trouble with
 right now; the code that supported it seems to be disabled...) and
 selfdoc for this and a few other newer options.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/28/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Catch exceptions from the output content handler in flush(), and throw a
 SAXParseException with line numbers filled in.
 If we don't do this, and the exception is a RuntimeException,
 good line numbers of where the exception occured in the stylesheet
 won't get reported. I tried just catching RuntimeException, but
 for whatever reason it didn't seem to catch.
 Fix for Christina's DOMException error problem.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/29/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Added: </I>java/src/org/apache/xml/dtm/ref/dom2dtm
 DOM2DTMdefaultNamespaceDeclarationNode.java<BR><I>Committer's log entry: </I>Moved default namespace declaration node object out of its &quot;inner
 class&quot; status, since I think I want to perform an instanceof test on it.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/29/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xpath XPathAPI.java<BR><I>Added: </I>java/src/org/apache/xpath CachedXPathAPI.java<BR><I>Committer's log entry: </I>Bugzilla 4336 -- fix for presenting symptom (since the implicit
 xml: declaration pseudo-DOM node is resynthesized in each
 DTM, find the _corresponding_ node), and a first draft of
 CachedXPathAPI which should be a fix for the larger symptom
 (XPathAPI creates a new DTM every time, which is potentially
 very ugly for applications that want to run XPaths repeatedly
 on a single document).

 Also caught and fixed another node-handle/node-identity confusion.
 The fact that DTM.get...() allowed us to be sloppy about that
 distinction in the past means there may still be a few others lurking
 in the code. Ye gods, I _wish_ Java had typedef!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/29/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Minor tweaks<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>11/29/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Redirect.java<BR><I>Committer's log entry: </I>Patch to enable optional 'append' attribute on redirect:open and
 redirect:write elements to append to file; note that behavior may
 not be what you expect when using xml output, since the xml decl
 will currently be output *each* time you newly write to the file
 Submitted by: jpvdm@iafrica.com<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/29/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Implement getDocumentElement. If the DTM doesn't represent a
 wellformed Document, this call is undefined and throws an exception...
 which isn't DOMlike but that's a non-DOMlike situation.<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D12 and 2.2.D13</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>Xalan-Java 2.2.D13 is intended to be the final release in the current series of Developer releases incorporating
     the <A href="dtm.html">DTM</A>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
     standard &quot;User&quot; release. Accordingly, we plan to release Xalan-Java 2.2 soon.</P>
     <P>Beginning with this release, xalan.jar contains just the Xalan-Java implementation. The source files for the SAX level 2, DOM 2, 
     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<A href="http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/" target="_top">xml-commons/java/external/src</A>), and are built as
     xml-apis.jar. These interfaces are shared by a number of tools, so placing them in their own jar simplifies coordination and reduces 
     the risk of duplication. <B>To run Xalan-Java, you must add xml-apis.jar to your classpath.</B> See <A href="getstarted.html#classpath">Setting up the system class path</A>.</P>
     <P>Beginning with this release, we are shipping two distribution files; a binary
     distribution file, which includes everything needed to run Xalan-Java and build applications, and a source distribution. For
     more information, see <A href="downloads.html">Downloading what you need</A>.</P>
     <P>This release also includes <A href="samples.html#validatexmlinput">ValidateXMLInput</A>, a sample that illustrates 
     how you can verify that the XML input you are transforming adheres to its document type. It is in the samples/validate subdirectory
     along with a Validate utility that you can use to validate XML files without performing a transformation.</P>     
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/12/2001<BR><I>Modified: </I>java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>Bugzilla3995: Removed &quot;final&quot; keywords. That doesn't by itself
 provide the requested enhancement, but it makes prototyping one
 a bit easier.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 3384. See comments in the toDouble method; I suspect this may be 
wasted micro-optimization.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Is &quot; 12 34 . 56 78 &quot; really considered acceptable?
 Or should whitespace within the value be treated as NAN?<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Updated build number to 2.2.D12.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>Updated build number to 2.2.D12.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemLiteralResult.java<BR><I>Committer's log entry: </I>Fix for Bugzilla1133, LRE21: xsl:extension-element-prefixes should be 
considered an exclusion<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemLiteralResult.java<BR><I>Committer's log entry: </I>Fix for Bugzilla 3464. Exposes errors in conformance tests namespace93 and 94.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>10/16/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize CharInfo.java
 HTMLEntities.res XMLEntities.res<BR><I>Committer's log entry: </I>Fix Bugzilla#4000, force reading of *Entites.res to be in UTF-8; added 
comments
 PR: Bugzilla#4000<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/17/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Avoid overgenerality of isDigits
 Combine most character tests into a single switch for performance
 Reject values with embedded (as opposed to leading/trailing) whitespace.

 Note that this is &quot;more correct:&quot; than the old solution of calling Java's
 toDouble, since (I think) XSLT doesn't officially accept leading + or
 scientific notation. If folks want to accept those notations, an
 extension function specifically for that purpose seems the
 simplest/safest/most-portable solution.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/17/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Gaaah. Typo.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>10/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Added: </I>java/src/org/apache/xalan Version.java<BR><I>Committer's log entry: </I>Added new org.apache.xalan.Version class for better versioning info;
 Deprecated org.apache.xalan.processor.XSLProcessorVersion;
 Updated EnvironmentCheck with this info<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan Version.java<BR><I>Committer's log entry: </I>Be careful with parentheses when using ?: operator.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<BR><I>Committer's log entry: </I>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref CoroutineSAXFilterTest.java<BR><I>Committer's log entry: </I>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan Version.java<BR><I>Committer's log entry: </I>Whups; sloppy: Actually, problem was that the latter two arguments to ?:
 must agree in datatype. Dropped in a quick-and-dirty int-to-string hint.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Preliminary Xerces-2 support. Doesn't leverage Xerces-2 incremental features
 yet, but should at least compile and run under the new parser without
 breaking support for the old one. Still working on improving this.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemCallTemplate.java<BR><I>Committer's log entry: </I>Bugzilla 4218: Make sure that the stack frame gets restored to the frame that 
was previously set. Just calling unlink() may restore to the wrong frame, and 
get us out of synch.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/xml/sax/helpers ParserAdapter.java<BR><I>Committer's log entry: </I>Java 1.1.8 back-compatability requires not using Java 1.2 collection calls.
 (Still waiting for community consensus before abandoning 1.1)<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>10/18/2001<BR><I>Modified: </I>java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>Bugzilla 4218: Make sure that the stack frame gets restored to the frame that 
was previously set. Just calling unlink() may restore to the wrong frame, and 
get us out of synch.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/22/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>In Xerces2, SAXParser no longer seems to inherit from
 XMLReader; explicit casts needed to work around that.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>10/23/2001<BR><I>Removed: </I>java/src/javax/xml/parsers SAXParserFactory.java
 SAXParser.java ParserConfigurationException.java
 package.html FactoryFinder.java
 FactoryConfigurationError.java
 DocumentBuilderFactory.java DocumentBuilder.java<BR><I>Committer's log entry: </I>Remove javax.xml.parsers package from xalan sources since we no longer ship 
with these files<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize CharInfo.java<BR><I>Committer's log entry: </I>Microsoft VJ++ workaround. Should never arise in any reasonably
 standards-compliant Java environment, but VJ++ isn't...<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize CharInfo.java<BR><I>Committer's log entry: </I>Additional &quot;big scary&quot; docs for Microsoft VJ++ workaround.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>10/25/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler XPathParser.java<BR><I>Committer's log entry: </I>Added fix for bug reported by Myriam for match=&quot;//x/a&quot; patterns. On the
 second &quot;/&quot; on &quot;//&quot;, the parser wasn't swallowing the token, which caused
 the &quot;x&quot; pattern to be ancestor instead of parent. If you don't have this fix,
 it will cause 'a' to be matched when it has any ancestor that is 'x'.
 This fix should be localized to only match patterns. The reason this probably
 wasn't reported before, is because &quot;//&quot; at the head of a match pattern is
 pretty useless, &quot;x/a&quot; being equivelent.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>10/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToHTML.java<BR><I>Committer's log entry: </I>By longstanding request, don't URL-escape spaces. This is consistent with the
 specification, and the opinion of the right thing to do by several people on 
the
 XSL working group, including Mike Kay, and by the LotusXSLTeam.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/30/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLTElementDef.java<BR><I>Committer's log entry: </I>Improved safety net: When running with Xerces2, the &quot;uri&quot; field may be null.
 (Also reordered tests to encourage optimization of code.)<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/31/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Add command-line switches for the options introduced at same time as DTM, to 
make testing those features easier.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/02/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetPIHandler.java<BR><I>Committer's log entry: </I>Bugzilla 4575: Add the EOL character to the list of token delimiters.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/02/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>Leverage Xerces-2 incremental parsing feature, when possible,

 Making this compile _and_ run under both the old and new versions of
 the parser involves a lot of reflection... especially since Xerces-2
 no longer provides a way to directly request incremental delivery
 of SAX events; we now have to assemble that concept ourselves,
 using XNI components.

 Note that if you pass an existing Xerces-2 SAXParser into the
 IncrementalSAXSource_Xerces wrapper, there is currently no way
 for us to access its incremental controls. In that case, we are
 forced to fall back on the _Filter solution and coroutines.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/02/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForFSB.java<BR><I>Committer's log entry: </I>Bugzilla 4396: Defaulting to the super hashCode(). This causes us to create 
a string, but at this point this only seems to get called in key processing. 
Maybe we can live with it?<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>11/02/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Use appropriate context class loader as done in JAXP's FactoryFinder;
 Added various new jars; added checkAntVersion()<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/04/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize HTMLEntities.res<BR><I>Committer's log entry: </I>Commented out mainly greek entities that Netscape seems not to handle.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/04/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize Encodings.java
 SerializerToHTML.java SerializerToText.java
 SerializerToXML.java<BR><I>Committer's log entry: </I>Progress on Bugzilla Bug 1639 : Xalan escaping characters for ISO encodings 
other than ISO-8859-1.

 The problem is that you can't tell from the Java Writers if they can encode
 a character, and you can't tell which character they are going to encode to.
 So...

 Do a one-time-only reflection to see if a sun.io.CharToByteConverter for the
 specific encoding is available. I'm hoping this will work for most or all
 platforms... but only some extensive testing will tell for sure. If the
 CharToByteConverter is not available, it falls back to the old behavior.
 If it is available, use the canConvert method to see if the UTF-16 character
 can be encoded. If it can be, just send it to the writer, otherwise escape 
it.
 This doesn't need to be done for &lt; 128, so I'm suspecting the performance
 hit won't be too bad.

 The alternative is to create lookups for all the encodings that tell which
 blocks of characters can't be encoded. Too much work for me this
 weekend, though it remains a possibility. I want to try the use of
 CharToByteConverter.canConvert first.

 One problem I've encountered is that CharToByteConverter.canConvert
 returns true for (utf-16 code points) 127-159. And so they go unescaped.
 How bad of a problem is this? This seems like a bug in the Java
 CharToByteConverter for ISO-8859-7.

 It remains to be seen if this problem exists with other encodings, or if this 
is
 the best approach.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/05/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>Check for control characters for canConvert, and return false if it is a 
control
 character, so that it will be escaped.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Don't set the ErrorHandler if it is already set.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>11/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Minor fix to JavaDoc for setRecursionLimit.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath/operations Operation.java
 UnaryOperation.java<BR><I>Committer's log entry: </I>Bugzilla 4679: Accessors for left and right operands<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToHTML.java<BR><I>Committer's log entry: </I>Do not escape the percent '%' character anymore.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes LocPathIterator.java
 OneStepIterator.java PredicatedNodeTest.java<BR><I>Committer's log entry: </I>Bugzilla 4638: When we are in a subcontext we need to clip off the predicate 
when evaluating. If not, we end up with the wrong nodeset. This also relates to 
test position68.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 ClonerToResultTree.java ResultTreeHandler.java<BR><I>Committer's log entry: </I>Bugzilla 4607; allow explicitly cloning namespace nodes rather than
 throwing exception.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>11/07/2001<BR><I>Removed: </I>java/src/META-INF/services
 javax.xml.parsers.SAXParserFactory
 javax.xml.parsers.DocumentBuilderFactory<BR><I>Committer's log entry: </I>Remove services/javax.xml.parsers.* references; we assume parsers have their 
own<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>11/07/2001<BR><I>Removed: </I>java/src/javax/xml/transform ErrorListener.java
 FactoryFinder.java OutputKeys.java Result.java
 Source.java SourceLocator.java Templates.java
 Transformer.java
 TransformerConfigurationException.java
 TransformerException.java TransformerFactory.java
 TransformerFactoryConfigurationError.java
 URIResolver.java overview.html package.html
 java/src/javax/xml/transform/dom DOMLocator.java
 DOMResult.java DOMSource.java package.html
 java/src/javax/xml/transform/sax SAXResult.java
 SAXSource.java SAXTransformerFactory.java
 TemplatesHandler.java TransformerHandler.java
 package.html
 java/src/javax/xml/transform/stream StreamResult.java
 StreamSource.java package.html
 java/src/org/w3c/dom Attr.java CDATASection.java
 CharacterData.java Comment.java DOMException.java
 DOMImplementation.java Document.java
 DocumentFragment.java DocumentType.java
 Element.java Entity.java EntityReference.java
 NamedNodeMap.java Node.java NodeList.java
 Notation.java ProcessingInstruction.java Text.java
 package.html
 java/src/org/w3c/dom/ranges DocumentRange.java Range.java
 RangeException.java package.html
 java/src/org/w3c/dom/traversal DocumentTraversal.java
 NodeFilter.java NodeIterator.java TreeWalker.java
 package.html
 java/src/org/xml/sax AttributeList.java Attributes.java
 ContentHandler.java DTDHandler.java
 DocumentHandler.java EntityResolver.java
 ErrorHandler.java HandlerBase.java InputSource.java
 Locator.java Parser.java SAXException.java
 SAXNotRecognizedException.java
 SAXNotSupportedException.java
 SAXParseException.java XMLFilter.java
 XMLReader.java package.html
 java/src/org/xml/sax/ext DeclHandler.java
 LexicalHandler.java package.html
 java/src/org/xml/sax/helpers AttributeListImpl.java
 AttributesImpl.java DefaultHandler.java
 LocatorImpl.java NamespaceSupport.java
 ParserAdapter.java ParserFactory.java
 XMLFilterImpl.java XMLReaderAdapter.java
 XMLReaderFactory.java package.html<BR><I>Committer's log entry: </I>Use a condensed copy of xml-commons sources instead of individual sources;
 remove xalan-specific copies of commons files<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/08/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/templates ElemNumber.java
 java/src/org/apache/xml/utils/res XResources_cy.java
 XResources_el.java XResources_ja_JP_A.java
 XResources_ja_JP_HA.java XResources_ja_JP_HI.java
 XResources_ja_JP_I.java XResources_zh_CN.java
 XResources_zh_TW.java<BR><I>Committer's log entry: </I>Bugzilla 4601: Change ElemNumber to use a long integer for the value of the 
number. This will allow us to format bigger numbers. As far as japanese 
multipliers, we decided to document as a xalan limitation the fact that the 
last 2 japanese multipliers will not be supported. If anyone has a strong and 
valid user case for this, we will reconsider. For now, we could not justify the 
expense of moving to BigInteger to support these multipliers.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/08/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Bugzilla 4735: We should at least report an error when we overflow DTM 
addressing...<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/08/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor ProcessorInclude.java<BR><I>Committer's log entry: </I>Bugzilla 4355: Make sure that when finding out if a stylesheet imports 
itself, we use the resolved href.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>11/08/2001<BR><I>Modified: </I>java/src/org/apache/xpath NodeSetDTM.java<BR><I>Committer's log entry: </I>Bugzilla 4158: Make sure we get the current, not the node pointed to by 
m_next, which has been already incremented.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Bugzilla 4344: discard attrs which don't have an element to belong to<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Bugzilla 4344: more efficient.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Reorder slightly and add test to not synthesize xmlns:xsl declaration
 if one was already present on the DOM's root element.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan Version.java<BR><I>Committer's log entry: </I>D13 internal version number update<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>11/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>D13 internal version number update<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D11</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>09/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Removed the code which precalculated node levels
 (depth in tree). This has been IFed out for some time, but
 was retained in case we wanted to go back to it. Since it
 seems we're happy with this choice, zapping it entirely
 saves a few more cycles.

 It's simple enough to recreate if we change our minds later.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>09/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Minor cleanup and updates in preparation for extension function;
 note SAX portion isn't complete yet<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>09/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Update EnvironmentCheck service with SAX checking; better method organization;
 Add checkEnvironment to xalan: built-in Extensions class<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/12/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler Lexer.java<BR><I>Committer's log entry: </I>Bug 2140: Catch index out of bounds exception<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Bug 2130: Check for null data to avoid NPE<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/templates ElemElement.java<BR><I>Committer's log entry: </I>Bug 3421: Issue an error if namespace attribute is used with an empty string 
in xsl:element<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemElement.java<BR><I>Committer's log entry: </I>Backing out this change. Some conformance tests need to be updated first<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemElement.java<BR><I>Committer's log entry: </I>Bug 3421: Issue an error if namespace
 attribute is used with an empty string in xsl:element<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemTemplateElement.java<BR><I>Committer's log entry: </I>Bug 3442: when building the prefix table for an element, just override 
prefixes defined in parent element with uris that have been redefined by the 
element instead of keeping both uris in the table.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>09/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerFactory.java<BR><I>Committer's log entry: </I>Fix Bugzilla 3491: updated error message text; also updated Javadoc to
 reflect @throws; note that the Javadoc is still somewhat contradictory
 about returning a null on error (it appears to throw exceptions instead)
 PR:3491
 Submitted by:Julian.Birch@ranplc.co.uk<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>09/13/2001<BR><I>Modified: </I>java/src/javax/xml/transform TransformerFactory.java
 java/src/org/apache/xml/dtm DTMManager.java<BR><I>Committer's log entry: </I>Fix Bugzilla 3423: documentation updates for proper class, property names
 (one of two checkins)
 PR:3423
 Submitted by:gthb@dimon.is<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>09/14/2001<BR><I>Modified: </I>java/src/org/apache/xpath XPath.java<BR><I>Committer's log entry: </I>Fix Bugzilla 2637: documentation updates for constructor functionality
 PR:2637
 Submitted by:gthb@dimon.is<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemUse.java<BR><I>Committer's log entry: </I>Bug 2548: Combine attribute sets with the same name but process them in order 
of precedence.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/17/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes UnionPathIterator.java<BR><I>Committer's log entry: </I>Bug 3533: Check for null m_iterators before trying to use it.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer KeyRefIterator.java<BR><I>Committer's log entry: </I>Bugzilla 3618: Check cache before anything else when getting the next node in 
the iterator.<BR><BR></LI><LI><I>Committed by </I>morten@apache.org<I> on </I>09/19/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xsltc TransletException.java<BR><I>Committer's log entry: </I>Changed the TransletException class so that it inherits from SAXException
 and not from Exception. This should make it possible for us to avoid
 testing for both SAXExceptions and TransletExceptions. Exception handling
 is one of the things that JVM takes its time with, and we should try to
 avoid using them when we can, and use as few of them as possible otherwise.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/19/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>Bugzilla 2332: Implement getAttribute() method to return the values for 
incremental and optimize<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>09/20/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Enable Attr.getOwnerElement()<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xalan/templates ElemLiteralResult.java<BR><I>Committer's log entry: </I>Bugzilla 1803: Handle version attribute on a litteral element.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>09/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>release 2.2.D11<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>09/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>release 2.2.D11<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLTSchema.java<BR><I>Committer's log entry: </I>Mark xsl:template as containing ordered elements. Fix for no error when 
xsl:param not first child of xsl:template<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/28/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemLiteralResult.java
 ElemTemplateElement.java Stylesheet.java<BR><I>Committer's log entry: </I>Bugzilla 3800: Make sure that when looking for excluded prefixes, we check 
the URI associated with the prefix, not the prefix in the excluded list.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>09/28/2001<BR><I>Modified: </I>java/src/org/apache/xpath NodeSetDTM.java<BR><I>Committer's log entry: </I>Do not reorder or strip duplicate nodes when converting a DOM nodelist into a 
DTM nodelist<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/01/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java<BR><I>Committer's log entry: </I>Catch for unwrappered StopException (apparently not all parsers generate
 a SAXException wrapper).<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>10/01/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDefaultBaseIterators.java
 DTMDefaultBaseTraversers.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Creating the implied Namespace Node for xml:<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D10</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>The SQL Extension library has been updated to work with DTM.</I></FONT></TD></TR></TABLE>
<P> Core (Non-XSLTC) source code updates:</P><UL>
<LI><I>Committed by </I>garyp@apache.org<I> on </I>08/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Fix bugzilla bug 3056 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3056). SAX2DTM now keeps 
track if it is receiving events inside a DTD and ignores comment events when 
inside the DTD.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>Update version for 2.2.D9 build<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>08/14/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java SQLDocument.java
 XConnection.java<BR><I>Committer's log entry: </I>Fixed bug in connect method where User and Password were not
 correctly being passed to the JDBC Driver. Requires chnage in
 ConnectionPool Interface
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/15o2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql XConnection.java<BR><I>Committer's log entry: </I>Use defined constant DTMManager.IDENT_DTM_NODE_BITS for shifting DTM nodes, 
not hard coded value.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/15/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Fix problem with resolving a relative URI from a processing instruction<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/17/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Make sure base is not null before checking for its contents.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates FuncDocument.java<BR><I>Committer's log entry: </I>Fix document function so that if only one argument is passed and it is a 
nodetest, the base to be used to resolve relative URIs is the base of the each 
node in the nodeset.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLTSchema.java<BR><I>Committer's log entry: </I>Allow multiple iterations of xsl:with-param within an xsl:call-template or 
xsl:apply-template<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/20/2001<BR><I>Modified: </I>java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>Added getCurrentNodeList() for getting the current node list as defined
 by http://www.w3.org/TR/xslt#dt-current-node-list.
 This looks up the stack of the SubContextLists to find the top-level
 LocPathIterator. I'm fairly unhappy with this fix, and hope to restructure
 the context list stuff a bit to avoid the casts in the getCurrentNodeList(),
 and to fix getCurrentNode() so that it properly defines the current
 node as defined by the XSLT spec. As a matter of fact, I would
 like to break up XPathContext into an XSLTContext.
 Part of the http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031
 fix.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/20/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncCurrent.java<BR><I>Committer's log entry: </I>Call new XPathContext#getCurrentNodeList. Fixes
 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer KeyRefIterator.java
 java/src/org/apache/xpath/axes ChildIterator.java
 ChildTestIterator.java DescendantIterator.java
 MatchPatternIterator.java
 SelfIteratorNoPredicate.java UnionPathIterator.java<BR><I>Committer's log entry: </I>Fix for problem reported by Mike Starr &lt;mike.starr@air2web.com&gt;,
 where the transformation hangs for &quot;foo[2] | bang&quot;
 patters, i.e. unions with positional predicates. The fix
 is to have the iterators#nextNode() set m_lastFetched to DTM.NULL
 when m_foundLast is found to be true on function entry
 (after the cache check). This allows getCurrentNode() to
 fullfill it's contract of returning null if the last fetch was
 null. The bug occured after an optimization for positional
 predicates to have them not continue searching once
 the positional node was found, by setting m_foundLast
 to true.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>08/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Removed debug flag
 Submitted by:John Gentilin<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>08/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java
 XConnection.java<BR><I>Committer's log entry: </I>Fixed Streaming Mode
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>08/24/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<BR><I>Committer's log entry: </I>added document registration and release events to the DTM interface
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>08/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>Fix bug 3112 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3112). Fix 
tokenize to work with DTM by obtaining a new DocumentBuilder and not using the 
document from the context node.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>08/26/2001<BR><I>Modified: </I>java/src/org/apache/xpath VariableStack.java
 java/src/org/apache/xpath/operations Variable.java<BR><I>Committer's log entry: </I>Fix bug 3265 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3265). Using 
an expression in the evaluate extension function that contains a top-level 
variable was cause an NPE.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/26/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XStringForChars.java<BR><I>Committer's log entry: </I>Fixed two bugs, one in getChars and one in charAt where the m_start
 offset wasn't being used correctly. This manifested itself in some
 stuff I was doing with the startsWith function, but likely caused
 many other bugs with other functionality.<BR><BR></LI><LI><I>Committed by </I>morten@apache.org<I> on </I>08/27/2001<BR><I>Added: </I>java/src/org/apache/xalan/xsltc StripFilter.java<BR><I>Committer's log entry: </I>Forgot to add this file in my last putback.
 PR: n/a
 Obtained from: n/a
 Submitted by: morten@xml.apache.org
 Reviewed by: morten@xml.apache.org<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/28/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>added dumpNode method, convenience for debugging.

 We might want to move this function up to DTMDefaultBase, or
 perhaps to the DTM API itself.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/28/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToText.java<BR><I>Committer's log entry: </I>Fix http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3131 by
 overriding writeNormalizedChars and writeUTF16Surrogate to
 not do any XML escaping.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/28/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>The index was being stored as opposed to the node handle when we were 
replacing namespace nodes. Store the actual node handle.<BR><BR></LI>
<LI><I>Committed by</I> mmidy@apache.org<I> on </I>08/29/2001<BR><I>Modified: </I>
java/src/org/apache/xpath/compiler Lexer.java<BR><I>Committer's log entry: </I>Fix for Bugzilla 2684 StringIndexOutOfBounds Exception. Check if we are at the end of the pattern string.<BR><BR></LI>
</UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D9</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P>
<UL><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>2.2.D8<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>2.2.D8<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer NodeSortKey.java<BR><I>Committer's log entry: </I>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Just added some stuff to diagnose bugs for flavor th.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes WalkerFactory.java
 java/src/org/apache/xpath/compiler Compiler.java
 java/src/org/apache/xpath/patterns
 ContextMatchStepPattern.java StepPattern.java<BR><I>Committer's log entry: </I>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.

 This fixes a bug with match=&quot;chapter//footnote[1]&quot; patterns.

 The main change here is minor to remove the automatic attachment of parent::* 
to simple step patterns.

 He has re-implemented executePredicates to be
 more efficient. Given a pattern such as row[6], it
 does not iterate over the entire axis until it reaches
 the node to see if it is the sixth node. Rather,
 starting from the current node, it works backwards
 (preceding siblings) until it either runs out of nodes
 or finds more than six nodes that match the
 predicate [I can explain it better if desired].
 This optimization improves performance slightly
 overall. It helps decoy and patterns most (by
 about 10%).

 The other optimization that I implemented was the
 following. For a pattern foo[][3][][4] ..., where more
 than one predicate is a number (position check),
 in checking the predicate [4], the fact that the
 current node has passed foo[][3] implies that it is
 the only node that is the third node among its
 siblings that passes foo[]. Therefore, any
 subsequent position checks can be true if and
 only if the position is [1]. This optimization is not
 used by the xsltmark benchmarks and so does
 not offer any performance benefits.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes DescendantIterator.java<BR><I>Committer's log entry: </I>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler Lexer.java<BR><I>Committer's log entry: </I>Resize the m_patternMap if m_patternMapSize exceeds the bounds.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions
 ExtensionHandlerGeneral.java
 ExtensionHandlerJavaPackage.java
 ExtensionsTable.java MethodResolver.java
 java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
 java/src/org/apache/xalan/processor ProcessorLRE.java
 ProcessorTemplateElem.java StylesheetHandler.java
 TransformerFactoryImpl.java XSLTAttributeDef.java
 XSLTElementProcessor.java
 java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/serialize CharInfo.java
 WriterToUTF8Buffered.java
 java/src/org/apache/xalan/templates ElemExtensionCall.java
 ElemExtensionDecl.java ElemMessage.java
 FuncDocument.java FuncFormatNumb.java
 OutputProperties.java StylesheetRoot.java
 java/src/org/apache/xalan/transformer TrAXFilter.java
 TransformerHandlerImpl.java
 TransformerIdentityImpl.java TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/dtm DTMException.java
 DTMManager.java
 java/src/org/apache/xml/dtm/ref ChunkedIntArray.java
 CoroutineManager.java CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java DTMBuilder.java
 DTMDefaultBase.java DTMDefaultBaseIterators.java
 DTMDefaultBaseTraversers.java
 DTMManagerDefault.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
 java/src/org/apache/xml/utils ObjectPool.java QName.java
 URI.java
 java/src/org/apache/xpath NodeSet.java NodeSetDTM.java
 VariableStack.java XPath.java XPathContext.java
 java/src/org/apache/xpath/axes WalkerFactory.java
 java/src/org/apache/xpath/functions FuncSubstring.java
 FunctionDef1Arg.java
 java/src/org/apache/xpath/objects
 XRTreeFragSelectWrapper.java XStringForChars.java
 java/src/org/apache/xpath/operations Variable.java
 java/src/org/apache/xpath/res XPATHErrorResources.java<BR><I>Committer's log entry: </I>Getting all (almost all) error message strings into the resource bundle<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/27/2001<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref DTMBuilder.java<BR><I>Committer's log entry: </I>Accidentally added. Now deleting.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath Expression.java
 java/src/org/apache/xpath/axes AxesWalker.java
 LocPathIterator.java PredicatedNodeTest.java
 ReverseAxesWalker.java
 java/src/org/apache/xpath/objects XNumber.java
 java/src/org/apache/xpath/operations Variable.java<BR><I>Committer's log entry: </I>If a proximity predicate is a stable number (variable or number literal) then,
 once the node is found, don't keep searching! (since only one
 node is possible).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/30/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<BR><I>Committer's log entry: </I>In getNextNamespaceNode and getFirstNamespaceNode, was
 sometimes returning a node without the DTM identity bits.
 Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2878.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/30/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler OpMap.java<BR><I>Committer's log entry: </I>Throw real error instead of runtime error in getFirstPredicateOpPos
 for better error reporting.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/30/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes PredicatedNodeTest.java
 java/src/org/apache/xpath/compiler OpMap.java<BR><I>Committer's log entry: </I>Bit of a hack to make /descendant-or-self::north with getFirstPredicateOpPos
 where getFirstPredicateOpPos was always throwing an error if
 there was not a predicate (!! Should have been discovered before
 now?!?!). If -2 return -2 (instead of throwing an error), and
 handle this case in PredicatedNodeTest#initPredicateInfo.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/30/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java SQLErrorDocument.java
 XConnection.java<BR><I>Committer's log entry: </I>Added the original pquery and streaming mode functionality
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/30/2001<BR><I>Added: </I>java/src/org/apache/xalan/lib/sql DTMDocument.java<BR><I>Committer's log entry: </I>Added DTM Document, a common impl between SQLDocument and SQLErrorDocument
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/30/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes DescendantIterator.java
 WalkerFactory.java<BR><I>Committer's log entry: </I>Fix addresses http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=XalanJ2,
 and a whole class of related problems.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/31/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XNodeSet.java XObject.java
 java/src/org/apache/xpath/patterns StepPattern.java<BR><I>Committer's log entry: </I>Detach expressions in match patterns. Also, defined
 numWithSideEffects and boolWithSideEffects (for lack of
 better names) that will increment the iterator, and call these
 for predicates. The combination of these results in about an
 18% performance improvement for decoy.xsl.
 Credits to Mukund Raghavachari/Watson/IBM@IBMUS.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/31/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions
 ExtensionHandlerGeneral.java
 java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/templates ElemExtensionDecl.java<BR><I>Committer's log entry: </I>Add support for external scripts (ie, the src attribute on a script element)<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/31/2001<BR><I>Modified: </I>java/src/org/apache/xpath XPathContext.java
 java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIteratorForward.java<BR><I>Committer's log entry: </I>In XPathContext#createDTMIterator(int node), call 
OneStepIteratorForward(Axis.SELF)
 instead of DescendantIterator. This addresses one of the bugs
 in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925
 (i.e. &lt;xsl:copy-of select=&quot;xalan:nodeset($stylesheets)&quot;/&gt;...
 The DescendantIterator was enumerating all of the nodes in the RTF
 rather than just the one.)<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/31/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 ConnectionPoolManager.java DTMDocument.java
 DefaultConnectionPool.java ObjectArray.java
 PooledConnection.java SQLDocument.java
 SQLErrorDocument.java XConnection.java<BR><I>Committer's log entry: </I>Added Error Managment and javadocs
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/01/2001<BR><I>Modified: </I>java/src/org/apache/xpath/patterns StepPattern.java<BR><I>Committer's log entry: </I>Fixed some major problems with position() and last() in secondary
 predicates for match patterns. Credit goes to
 Mukund Raghavachari/Watson/IBM@IBMUS for flagging these.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>08/01/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql XConnection.java<BR><I>Committer's log entry: </I>Update after building Unit Test's
 Submitted by: John Gentilin<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/01/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLTAttributeDef.java<BR><I>Committer's log entry: </I>Fix for Bugzilla 2930. Fix from Alexander Rudnev. Handle namespaced elements.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/01/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm DTMAxisIterator.java
 java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
 DTMDefaultBaseIterators.java
 java/src/org/apache/xpath/axes OneStepIterator.java<BR><I>Committer's log entry: </I>Addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2945

 Bug was caused by (redundent) cloneWithReset being called from
 the UnionPathIterator, and the iterator in OneStepIterator not being
 reset. (Need to review: check other iterators for this.)

 Call reset on the iterator in OneStepIterator#reset. Reset the position
 value in the ancestor iterator reset. Define DTMAxisIterator#cloneIterator
 to not reset the iterator position, and fix the implementations of
 this to not call clone.reset().<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/02/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath NodeSetDTM.java
 java/src/org/apache/xpath/functions FuncExtFunction.java
 java/src/org/apache/xpath/objects XBoolean.java
 XNodeSet.java XNumber.java XObject.java<BR><I>Added: </I>java/src/org/apache/xpath/objects XNodeSetForDOM.java<BR><I>Committer's log entry: </I>Address http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925

 Create new XObject, XNodeSetForDOM, which is constructed
 from a Node, NodeList, or NodeIterator, and acts the same as
 XNodeSet, except it returns the original object for object(),
 nodeset(), and nodelist().

 Add XObject#create(Object val, XPathContext xctxt), which is
 called from TransformerImpl#setParameter(s), and
 FuncExtFunction#execute (for the return values of the
 extension).

 XBoolean and XNumber now also have Boolean and Number
 constructors, in which case the original object will also be
 returned from the object() method.

 This should make the conversion from java object to XObject
 consistent between function returns and setParameter. These
 changes should also fix a bug where NodeLists weren't being converted.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/03/2001<BR><I>Added: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>Replacement for org.xml.sax.helpers.NamespaceSupport; extends
 that API so it can be easily swapped in.

 Current changes;

 Minor code reorg. I'm sorry, but I find classes easier to read
 if fields are defined before methods reference them rather than
 at end, especially when inner classes are present.

 Punt stack vector in favor of doubly-linked list. (It was already
 singly-linked in parallel with the vector!)

 The whole dirty-tables concept was broken, because Context's
 ctor always called copyTables and thus always marked tables
 dirty. It also wasted some time setting itself only to be reset by
 setParent. I've fixed both by parameterizing the ctor and making
 copyTables specific to prep-for-new-declaration. (Could be
 moved back into the declaration method, for that matter.)

 I'm dubious about the caches in processName. As far as I can
 tell, Xalan per se never actually uses that method...

 The use of Hashtables is questionable. Hashtable is
 known to be inefficient and oversynchronized in older JVMs, and
 the fact that this is a bidirectional mapping suggests that an
 approach similar to our own String Pool -- lighter-weight, more
 targeted, hashing without reduplicating the two column tables --
 would be a win. Since these are typically short sets, even
 simple linear search is worth considering!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/03/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xalan/templates ElemTemplateElement.java
 java/src/org/apache/xalan/transformer ResultTreeHandler.java
 TransformSnapshotImpl.java<BR><I>Committer's log entry: </I>Cutover to NamespaceSupport2, q.v.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/03/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>Continuing code review.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/03/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>More efficient prefixes-for-specific-URI. This may wind up being
 redone yet again if/when the underlying storage representation
 changes.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>08/03/2001<BR><I>Added: </I>java/src/org/apache/xalan/lib PipeDocument.java<BR><I>Committer's log entry: </I>PipeDocument extension element (the pipeDocument method).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/04/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath NodeSet.java NodeSetDTM.java<BR><I>Committer's log entry: </I>Bug fixed regarding the current() function in the root template
 (related to bug#1269). Bug was reported by David Marston
 offline. The test for this is conf/copy/copy29.

 In TransformerImpl#applyTemplateToNode, create a NodeSetDTM and pass it to 
m_xcontext.pushContextNodeList(cnl);.
 In NodeSetDTM fix getCurrentNode so that it doesn't use m_next-1
 (which simply appears to be completely wrong). Do the same for
 NodeSet... though I don't think this will be called anywhere in
 Xalan.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/04/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm DTMAxisIterator.java
 java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
 DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>Provide method for DTMAxisIterator to get the current root node
 of the iteration.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/04/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XObject.java<BR><I>Committer's log entry: </I>In response to regression posted on xalan-dev by John Gentilin 
&lt;johnglinux@eyecatching.com&gt;
 on 08/03/2001 06:49 PM. When the XNodeSet taks a DTMIterator, it
 will call val.getDTMManager();, which will call LocPathIterator#getDTMManager,
 which will call m_execContext..getDTMManager(), which means
 that setRoot has to be called on the iterator before it is added to
 XNodeSet. Thus, call setRoot on the OneStepIterator in
 create(Object, XPathContext) before it is added to the XNodeSet.
 The regression was related to fix for 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/05/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes OneStepIterator.java<BR><I>Committer's log entry: </I>For the OneStepIterator(DTMAxisIterator iterator) constructor,
 initialize the node tests to DTMFilter.SHOW_ALL (duh).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XObject.java<BR><I>Added: </I>java/src/org/apache/xpath/objects XObjectFactory.java<BR><I>Committer's log entry: </I>Move create methods from XObject to XObjectFactory, in response
 to cyclic build problems encountered with javac 1.1.8.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>Moved anonomous class to PrefixEnumerator, in response
 to problems encountered with 1.1.8 build.
 Joe may want to fix this in another way, as
 I'm sure the anon class is probably a bit
 cheaper?<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>Address http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2972,
 where it was throwing a NPE instead of reporting that the variable
 was being accessed before it was bound (i.e. the variable was being
 accessed inside an RTF for that same variable).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<BR><I>Committer's log entry: </I>Remove m_hasStarted variable and associated assertion.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>Addresses bug http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3001.
 In the cloneIterator function of PrecedingIterator, the cloned array
 was being sized for _maxAncestors, which defaults to 8. But if the
 _stack was resized, it will copy more into the new stack than is
 allocated. The solution is to allocate the new clone._stack array to
 _stack.length.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>Don't create caches unless used (which I don't think they are, in Xalan).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<BR><I>Committer's log entry: </I>Made _maxAncestors not static, as this is
 not compatible with 1.1.8 (reported by
 Gary Peskin).<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils NamespaceSupport2.java<BR><I>Committer's log entry: </I>Playing a hunch, I moved the Context objects out of NamespaceSupport2.
 They're now a second class in the same file rather than being an inner class.
 That reduces the size of the Context2 object, and its initialization time, by
 removing the need for it to carry a reference to the NamespaceSupport2
 object that created it.

 Performance seems significantly improved... even (surprisingly!) on the
 getDeclaredPrefixes operation. Memory usage also seems better, as
 expected.

 NamespaceSupport2 is still acounting for about 5%
 of the time spent in the ResultTreeHandler, according
 to my latest trace. Apparently we are calling
 getDeclaredPrefixes an obscenely large number of
 times, and the Vector.elements call is adding up. We
 may want to look at where this is being called from
 and whether we can reduce the number of invocations.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Performance improvement; avoid scanning the same list twice.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java
 java/src/org/apache/xml/utils DefaultErrorHandler.java
 java/src/org/apache/xpath/operations Variable.java<BR><I>Committer's log entry: </I>This checkin hopefully fixes many problems with bad diagnostics lately, but
 at the expense of a slight change in behavior. The rule now is, the
 DefaultErrorHandler never outputs location info for error and fatalError... 
this has to be done
 by the catcher of the exception. Convenience methods for this are
 in DefaultErrorHandler#printLocation. This method will unwrap the
 exception as close to the originating source as possible.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions
 XSLProcessorContext.java
 java/src/org/apache/xml/dtm DTMIterator.java
 java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
 java/src/org/apache/xpath NodeSetDTM.java
 java/src/org/apache/xpath/axes AttributeIterator.java
 AxesWalker.java ChildIterator.java
 ChildTestIterator.java DescendantIterator.java
 FilterExprWalker.java LocPathIterator.java
 OneStepIterator.java OneStepIteratorForward.java
 ReverseAxesWalker.java UnionPathIterator.java
 WalkingIteratorSorted.java
 java/src/org/apache/xpath/objects XObjectFactory.java<BR><I>Committer's log entry: </I>Changes to allow some dynamic determination in WalkerIteratorSorted to
 see if the nodes really need to be sorted. Added isDocOrdered() and
 getAxis() to both DTMIterator and AxesWalker, and implemented
 appropriate overloads in derived or implementing classes. In FilterExprWalker
 return the contained DTMIterator's getAxis(). In WalkerIteratorSorted,
 implement canBeWalkedInNaturalDocOrder() function that is called
 from setRoot(...). If this function returns true, than don't sort the nodes
 in setRoot, and in all other respects treat this as if it is a simple
 WalkingIterator.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Fix for bugzilla 1251. Make sure exceptions are thrown when we're on the main 
thread.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/07/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes AxesWalker.java
 WalkerFactory.java WalkingIteratorSorted.java<BR><I>Committer's log entry: </I>Eliminate do/while check for duplicates in AxesWalker#nextNode()
 by using WalkingIteratorSorted for cases where both the preceding[-sibling]
 and following[-sibling] axes are being walked, and for &quot;@*/foo&quot; patterns
 (&quot;@attr/foo&quot; patterns still use WalkingIterator).<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>08/08/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates FuncFormatNumb.java<BR><I>Committer's log entry: </I>Fix bugzilla bug 3036 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3036). When no 
xsl:decimal-format element is supplied in the composed stylesheet, the defaults 
specified in the Recommendation section 12.3 should be used for the attribute 
values, not locale-specific defaults.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>08/09/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Fix for bugzilla 3060 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3060). Prefixes and
 namespaceURIs are kept in the same Vector, m_prefixMappings. The entries are 
stored as pairs of vector elements. The even elements contain the prefix and 
the odd elements contain the URI. In two routines, getPrefix and endElement, 
the appropriate prefix or URI was being located in the Vector using an 
indexOf. However, in this case where the prefix and the URI were the same, the 
routine was looking for the URI but finding the prefix instead of the URI. It 
tried tried to back up one to get the prefix and underflowed the Vector size.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java
 TransformerImpl.java<BR><I>Committer's log entry: </I>Implement ErrorHandler in ResultTreeHandler so that fatal errors can get 
passed in to the SAXHandler. Also change the code in TransformerImpl to call 
fatalError in case of an error instead of endDocument. (overlaps with URI 
handling fix...)<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java
 java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Fix code to handle absolute paths from unix systems. This fix is part of an 
ongoing process and is just meant to fix a few pending bugs. More changes are 
expected in this area.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Change version for xalan2.2.D9 build<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemElement.java
 java/src/org/apache/xalan/transformer ResultTreeHandler.java
 java/src/org/apache/xml/utils DefaultErrorHandler.java<BR><I>Committer's log entry: </I>ResultTreeHandler was pushing a new namespace context but failing to note 
that result in more pushes than pops. Cleaned up the execute() method of 
ElemElement to make it more understandable (to me) and added a few comments. 
The DefaultErrorHandler was not flushing Writers that it created. Since the 
Writers are never closed (and cannot be as there is no close method), error 
messages were failing to appear.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm DTMManager.java<BR><I>Committer's log entry: </I>Increasing the number of bits used to identify DTM nodes, at the expense of 
decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
other code has been updated to track this change (and to better track posible 
future changes), as have the IDKEY testcases.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<BR><I>Committer's log entry: </I>Increasing the number of bits used to identify DTM nodes, at the expense of 
decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
other code has been updated to track this change (and to better track posible 
future changes), as have the IDKEY testcases.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncGenerateId.java<BR><I>Committer's log entry: </I>Increasing the number of bits used to identify DTM nodes, at the expense of 
decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
other code has been updated to track this change (and to better track posible 
future changes), as have the IDKEY testcases.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath NodeSetDTM.java<BR><I>Committer's log entry: </I>Try to support getRoot. Fixes problem with TransformStateTest.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>08/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes WalkerFactory.java<BR><I>Committer's log entry: </I>Fix problem with duplicate nodes produced from a walking iterator<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D8</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>johng@apache.org<I> on </I>07/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Code Update
 Submitted by:John Gentilin<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Fixed DTM.NULL compile error<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TreeWalker2Result.java<BR><I>Committer's log entry: </I>Redundant test removed, possibly redundant code flagged for %REVIEW%<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java
 java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java
 IncrementalSAXSource.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
 java/src/org/apache/xml/utils SuballocatedIntVector.java<BR><I>Committer's log entry: </I>IncrementalSAXSource replaces CoroutineSAXParser -- simpler API,
 hence less risk of programming errors introducing timing windows. I hope.
 A few performance-related tweaks are also included in this check-in.
 Only very minor gains are expected.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/22/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java<BR><I>Committer's log entry: </I>Project Update<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/23/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Oops.Should have been checked in as part of the IncrementalSAXSource cutover. 
Sorry!<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>07/23/2001<BR><I>Modified: </I>java build.xml
 java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java
 java/src/org/apache/xml/utils/synthetic JavaUtils.java<BR><I>Committer's log entry: </I>3 small fixes to the build process ( to make it work with jdk1.4 and crimson)

 - exclude IncrementalSAXSource_Xerces if xerces is not detected
 - comment-out the &quot;main&quot; in IncrementalSAXSource_Filter.java ( it is a
 test, but has deps on xerces )
 - don't try to load the compiler in syntetic/JavaUtils. This is a mess,
 it was debated on tomcat-dev and ant-dev, as you may know some people
 decided to remove the internal compiler class ( sun.tools.javac.Main ),
 and that brakes jasper, ant and now xalan.

 It seems right now the only portable way to run the compiler is via command
 line call in a separate process ( jikes can easily make up for the
 overhead of creating a new process and doesn't leave garbage ).

 Question: is synthetic used ? Seems like a very usefull package, but if
 xalan is not using it it might be better to move it to xml-commons or
 jakarta-commons or some other place.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Don't set m_level anymore, as it looks like Joe commented out it's
 initialization. m_level is no longer called by Xalan, and the implementation
 can calculate it when it is called.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>Fixed bug 2758 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2758). The 
flag indicating that a call to startDocument() in the resultContentHandler was 
necessary was not being reset for multiple transforms.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/25/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Fix bug 2727 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2727). 
Attributes which contain a namespace prefix are indicated by placing a negative 
number in the appropriate entry in the m_dataOrQName array. The absolute value 
of this number is an entry in m_data. However, in this example, there were no 
text nodes before the first namespaced attribute so the entry in m_data had an 
array index of 0. This resulted in an entry of zero, not a negative number, in 
m_dataOrQName. This situation got several routines which tested for &lt; 0 
confused. I looked at several ways of fixing this but decided to just always 
allocate m_data.elementAt(0) entry to a dummy entry. The other solutions 
involved runtime checking which could slow down this piece of code and I felt 
that wasting one entry was worth it to not slow down the run time.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize
 WriterToUTF8Buffered.java<BR><I>Committer's log entry: </I>Fix bugzilla bug 2639 
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2639) where buffer was 
overflowing because the expansion of the Unicode characters into multiple UTF8 
characters was not being properly taken into account. Many thanks to 
Gunnlaugur Thor Briem for his &quot;multiply by three&quot; trick.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer NodeSorter.java<BR><I>Committer's log entry: </I>Commented out NumberFormat m_formatter = NumberFormat.getNumberInstance();.

 Mukund reported:

 a minor improvement for alphabetize.xsl is to comment out the line

 //NumberFormat m_formatter = NumberFormat.getNumberInstance();

 in NodeSorter.java. The variable m_formatter does not seem to be used 
anywhere, and the performance difference is:

 Before: alphabetize 10 90 5108 196 156 34.58 
OK
 After : alphabetize 10 70 4316 196 156 
40.93 OK<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>2.2.D8<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>2.2.D8<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer NodeSortKey.java<BR><I>Committer's log entry: </I>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Just added some stuff to diagnose bugs for flavor th.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes WalkerFactory.java
 java/src/org/apache/xpath/compiler Compiler.java
 java/src/org/apache/xpath/patterns
 ContextMatchStepPattern.java StepPattern.java<BR><I>Committer's log entry: </I>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.

 This fixes a bug with match=&quot;chapter//footnote[1]&quot; patterns.

 The main change here is minor to remove the automatic attachment of parent::* 
to simple step patterns.

 He has re-implemented executePredicates to be
 more efficient. Given a pattern such as row[6], it
 does not iterate over the entire axis until it reaches
 the node to see if it is the sixth node. Rather,
 starting from the current node, it works backwards
 (preceding siblings) until it either runs out of nodes
 or finds more than six nodes that match the
 predicate [I can explain it better if desired].
 This optimization improves performance slightly
 overall. It helps decoy and patterns most (by
 about 10%).

 The other optimization that I implemented was the
 following. For a pattern foo[][3][][4] ..., where more
 than one predicate is a number (position check),
 in checking the predicate [4], the fact that the
 current node has passed foo[][3] implies that it is
 the only node that is the third node among its
 siblings that passes foo[]. Therefore, any
 subsequent position checks can be true if and
 only if the position is [1]. This optimization is not
 used by the xsltmark benchmarks and so does
 not offer any performance benefits.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/27/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes DescendantIterator.java<BR><I>Committer's log entry: </I>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D7</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P> Core (Non-XSLTC) source code updates:</P><UL><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/03/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<BR><I>Committer's log entry: </I>Since the real root of our tree may be a DocumentFragment, we need to
 use getParent to find the root, instead of getOwnerDocument. Otherwise
 DOM2DTM#getHandleOfNode will be very unhappy.
 Result of report via private mail by Carsten Ziegeler of breakage
 in Cocoon.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToHTML.java
 SerializerToXML.java<BR><I>Committer's log entry: </I>Made m_maxCharacter, accumDefaultEscape,
 accumDefaultEntity, and m_isRawStack
 protected by request from Johannes Farrenkopf
 and Frank Nestel.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncNormalizeSpace.java<BR><I>Committer's log entry: </I>In executeCharsToContentHandler check first for
 DTM.NULL before trying to get the DTM.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Fix bug reported by &quot;Carsten Ziegeler&quot; &lt;cziegeler@sundn.de&gt;.
 Test for this is whitespace23.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SuballocatedIntVector.java<BR><I>Committer's log entry: </I>Drop some bounds tests for cases which shouldn't arise in the first place, 
since this is an inner-loop method.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SuballocatedByteVector.java
 SuballocatedIntVector.java<BR><I>Committer's log entry: </I>Synch SuballocatedByteVector with changed SuballocatedIntVector<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/05/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<BR><I>Committer's log entry: </I>Revert back to throwing a shutdownException if (arg == null) in co_yield. I 
see this
 occur if the parser is Crimson with output\output01, and it causes
 a hang if the shutdownException is not thrown.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>Make accumDefaultEntity and accumDefaultEscape non-final.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIterator.java
 java/src/org/apache/xpath/functions FuncExtFunction.java<BR><I>Committer's log entry: </I>Fix for John G. for the SQL extension: handle return types of
 DTM and DTMAxisIterator.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>In executeChildTemplates, somehow there was a popMode without
 a corresponding pushMode. The pushMode was added.
 Addresses bug posted by Stephane Bailliez &lt;sbailliez@imediation.com&gt;
 on the xalan-dev list on 07/09/2001 07:28 AM.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions ExpressionContext.java
 java/src/org/apache/xalan/templates StylesheetRoot.java
 java/src/org/apache/xpath VariableStack.java
 XPathContext.java<BR><I>Committer's log entry: </I>Resolve bugzilla 2355 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2355&gt;. To make the 
functionality clearer, I've changed the method name from getVariable to 
getVariableOrParam since the routine will pick up either one. Also fixed a 
bug where top level variables and parameters were not getting marked as such.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xpath XPathContext.java<BR><I>Committer's log entry: </I>Resolve bugzilla 2523 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2523&gt;. evaluate extension 
function was not refactored with DTM. Also need to add function to 
XPathContext.XPathExpressionContext to allow an extension to obtain the 
associated XPathContext.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes DescendantIterator.java<BR><I>Committer's log entry: </I>Fix problem with descendant-or-self and from root pattern. When from root, 
descedant or self was not recognized.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/10/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Quick patch to handle case where someone wants to build a DTM from
 an Element rather than from a Document. The Attr handling might want to
 move down into addNode.

 This opens several cans of worms -- what if the next user wants the
 root of their DTM to be an EntityReference node, which has no DTM
 node equivalent -- but we'll eat those when we get to them.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>Modify distinct() extension so that it no longer relies on DOMHelper which is 
deprecated but uses ExpressionContext.toString().<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/trace PrintTraceListener.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java
 java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDocumentImpl.java
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Added: </I>java/src/org/apache/xalan/lib NodeInfo.java
 java/src/org/apache/xalan/transformer XalanProperties.java
 java/src/org/apache/xml/dtm/ref NodeLocator.java<BR><I>Committer's log entry: </I>Application of patch submitted by Ovidiu Predescu &lt;ovidiu@cup.hp.com&gt;
 for file, line, column number information for XML source document.

 [A made one change: m_sourceSystemId, m_sourceLine, and
 m_sourceColumn are not created with the member variable
 initializer, since they are initialized in setProperty.]

 The following patch is a rework of a previous patch I've submitted on
 May 24 against the Stree model, current at that time. This time the
 patch is against the DTM model, and makes use of DTM features to
 optimize the lookup time and storage requirements. I hope this time
 the patch gets incorporated in the CVS repository, before any major
 rework happens again ;-).

 As with the previous patch, there is no overhead in space or time if
 source information is not needed.

 From a user perspective, this feature can be turned on by passing the
 -L flag to Xalan when invoking it from the command
 line. Programmatically you can also enable it by invoking the
 setProperty method on the TransformerImpl:

 TransformerImpl impl = ((TransformerImpl) transformer);
 
impl.setProperty(org.apache.xalan.transformer.XalanProperties.SOURCE_LOCATION,
 Boolean.TRUE);

 A Transformer &quot;property&quot; is different from a &quot;feature&quot;: while a
 feature is specific to all the transformer instances and usually
 refers to an implementation aspect, a property is a runtime capability
 that is set per Transformer instance. Currently the only property
 added by this patch is the source location in the XML source document.

 The patch adds two methods to the DTM interface:

 public void setProperty(String property, Object value);
 public SourceLocator getSourceLocatorFor(int node);

 The second method is used to obtain the source location given a node
 handle.

 There are two ways you can make use of the source location. The first
 one is from within a stylesheet, where you can have something like
 this:

 &lt;xsl:stylesheet
 xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
 xmlns:nodeinfo=&quot;xalan://org.apache.xalan.lib.NodeInfo&quot;
 version=&quot;1.0&quot;&gt;

 &lt;xsl:template match=&quot;*&quot;&gt;
 //node &lt;xsl:value-of select=&quot;name()&quot;/&gt;
 //file &lt;xsl:value-of select=&quot;nodeinfo:systemId()&quot;/&gt;
 //line &lt;xsl:value-of select=&quot;nodeinfo:lineNumber()&quot;/&gt;
 //column &lt;xsl:value-of select=&quot;nodeinfo:columnNumber()&quot;/&gt;
 &lt;xsl:apply-templates/&gt;
 &lt;/xsl:template&gt;

 &lt;/xsl:stylesheet&gt;

 If no arguments are passed to the systemId(), lineNumber() or
 columnNumber() functions, the corresponding information of the current
 context node is returned. A node can be passed as argument to the
 above functions, in which case the corresponding information about
 that node is returned. If a node set containing multiple nodes is
 passed as argument, only the information of the first node in the set
 is returned.

 The second way of obtaining the source location is
 programmatically. Given a Node instance, one can obtain the owner DTM
 and the node handle (an integer) that represents the
 node. Unfortunately I didn't see any way of hiding this: if you find
 one please let me know and I'll fix it.

 The following example is extracted from PrintTraceListener and
 illustrates the API:

 Node sourceNode = ev.m_sourceNode;
 int nodeHandler = ((DTMNodeProxy)sourceNode).getDTMNodeNumber();
 SourceLocator locator = ((DTMNodeProxy)sourceNode).getDTM()
 .getSourceLocatorFor(nodeHandler);

 m_pw.println(&quot;Selected source node '&quot; + sourceNode.getNodeName()
 + &quot;', at &quot; + locator);<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler Compiler.java<BR><I>Committer's log entry: </I>Fix bug 2175 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2175&gt; by 
adding the current time to the method key to ensure method key uniqueness. 
Multiple Compilers were getting the same hashCode, particularly in Visual Age 
for Java, due to aggressive garbage collection. Added the current time in 
mills to distinguish between the different functions being compiled.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemVariable.java
 StylesheetRoot.java
 java/src/org/apache/xpath VariableStack.java
 java/src/org/apache/xpath/operations Variable.java<BR><I>Committer's log entry: </I>Resolve bugzilla 2355 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2355&gt;. Added code to 
populate m_index for global variables and parameters. If the backward search 
for templates reaches the top level, use the list of composed top-level 
variables and parameters from StylesheetRoot.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Now implements DocumentFragment.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>Updated version to 2.2.0.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Updated version to 2.2.0.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/11/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<BR><I>Committer's log entry: </I>Fixed very ugly bug, left-over from DTM1, in getValue, where +1 was being 
added per the old attribute structure of DTM1.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java PooledConnection.java
 QueryParameter.java XConnection.java<BR><I>Added: </I>java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
 ObjectArray.java SQLDocument.java
 SQLErrorDocument.java<BR><I>Removed: </I>java/src/org/apache/xalan/lib/sql Column.java
 ColumnAttribute.java ColumnData.java
 ColumnHeader.java ExtensionError.java Row.java
 RowSet.java SQLExtensionError.java
 StreamableNode.java XConnectionPoolManager.java
 XStatement.java<BR><I>Committer's log entry: </I>First round of changes to port DOM mode to DTM Mode
 Submitted by: John Gentilin mailto://johng@apache.org<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Check if locator property is set before trying to use locator fields<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/trace PrintTraceListener.java<BR><I>Committer's log entry: </I>Don't print locator message if locator is null<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<BR><I>Committer's log entry: </I>In startDocument, run m_contentHandler.startDocument before you start the 
thread.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Call wait for initial events before the the transform is started.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<BR><I>Committer's log entry: </I>Allow co_yield to be called after the parse has finished.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java
 SQLErrorDocument.java<BR><I>Committer's log entry: </I>Added setProperty and getSourceLocatorFor empty methods.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>07/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>Fix problem reported by Carsten Ziegeler &lt;cziegeler@sundn.de&gt;. Using 
ApplyXPath (or doing a transformation) with DOM input was resulting in an NPE 
due to declareNamespaceInContext() being called before setting m_exptype which 
is needed by declareNamespaceInContext().<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<BR><I>Committer's log entry: </I>Add pauseForTransformThreadStartup. Call this in startDocument just
 after starting the transform thread. This should get rid of any variability
 with racing threads.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions
 XSLProcessorContext.java<BR><I>Committer's log entry: </I>Fix problem reported by jason heddings &lt;Jason.Heddings@Sun.COM&gt;.

 &quot;In v2.0.1, I was able to pass a Node to this function and have the node
 be copied to the result tree (as expected). In the source code for
 XSLProcessorContext, it appears that the only objects that can be sent
 to the result tree are XObjects. Everything else is converted to a
 String. So for instance, I can no longer create a ProcessingInstruction
 and pass it to the result tree via this method since the PI is simply
 converted to a String.&quot;<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToHTML.java<BR><I>Committer's log entry: </I>Application of patch submitted by Benjamin Riefenstahl 
&lt;Benjamin.Riefenstahl@ision.net&gt;

 Motivation: We are using Xalan to generate HTML pages. We have the
 requirement to integrate code for ad banners. The ad server provider
 has written the code to use with compatibility to NetScape 4 in mind.
 The code uses the NetScape proprietory &lt;LAYER&gt; element and &lt;IFRAME&gt;
 elements for other browsers. The SRC attributes of these elements
 contain URLs with several URL parameters separated by '&amp;', as is the
 common convention.

 Problem: The code is integrated in our XSL stylesheets. In the
 stylesheet the '&amp;' has to be written as the entity '&amp;amp;'. That's
 ok. The problem is that in the output the '&amp;' is also written as
 '&amp;amp;' which is not ok, because NetScape doesn't understand that.
 OTOH the same URL is written with '&amp;' when used in an &lt;A&gt; element.

 Solution: This goes down to a different handling of attribute values
 in the class SerializeToHTML, depending on whether the attribute in
 question is known to contain a URI or not. Xalan knows this for &lt;A&gt;
 but not for &lt;LAYER&gt; and &lt;IFRAME&gt;. When I compare the list in
 SerializeToHTML.java with the HTML specs, I find a couple of other
 missing URI attributes in SerializeToHTML.java. When I add the
 missing pieces, the generation works fine.

 Patch: Here is the patch (diff -c) for xalan-j_2_2_D6. I also have
 one for xalan-j_2_0_1 which is the version I actually tested this
 with. Please let me know if this is insufficient or the patch is
 wrong or if there is something else I can do to fix this problem.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>On code review of previous checkin from Gary P., we determined there
 was a problem with the point at which type was declared a
 DTM.NAMESPACE_NODE. So that part was moved back up (actuall
 a bit higher than where it was before),
 and the call to declareNamespaceInContext was moved a bit
 further down.<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql XConnection.java<BR><I>Committer's log entry: </I>Project Update
 Submitted by: John Gentilin mailto://johng@apache.org<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Project Update
 Submitted by: John gentilin mailto://johng@apache.org<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Fixup from previous check-in, defined new
 functions.
 Submitted by: John Gentilin mailto://johng@apache.org<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Project Update<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>reduced Attribute's for testing<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>07/16/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<BR><I>Committer's log entry: </I>Minor hack to catch an attribute value being null.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemNumber.java
 java/src/org/apache/xalan/transformer Counter.java
 CountersTable.java KeyRefIterator.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xpath NodeSetDTM.java
 java/src/org/apache/xpath/axes LocPathIterator.java
 UnionPathIterator.java WalkingIteratorSorted.java
 java/src/org/apache/xpath/objects XNodeSet.java
 XRTreeFrag.java<BR><I>Committer's log entry: </I>Add new parameter to NodeSetDTM constructor. We need to have a DTMManager on 
hand. Change code to use the new constructors.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>07/17/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<BR><I>Committer's log entry: </I>OOps! Back out this last change. Old code on my machine!!!<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>07/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql SQLDocument.java<BR><I>Committer's log entry: </I>Fixed a few bugs, almost there
 Submitted by: John Gentilin mailto://johng@apache.org<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref CoroutineManager.java
 CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<BR><I>Added: </I>java/src/org/apache/xml/dtm/ref IncrementalSAXSource.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java<BR><I>Committer's log entry: </I>Starting to phase out Coroutine*Parser* in favor of IncrementalSAXSource*.
 The latter simplifies the code, and should help us avoid some of the
 confusion that can arise in using the older tools.

 Most importantly, it greatly simplifies the calling sequences, by discarding
 the &quot;which file do you want to parse&quot; and &quot;do you want to parse any more
 files&quot; transactions. These now operate _only_ as filters, and only as single
 -use (though in fact the Xerces-specific version is reusable, and we may
 reintroduce that feature in the generic filtering version at a later date).

 Note too that we have swept the CoroutineManager completely
 under the covers of the filter's API. There's no particular reason to expose
 that implementation detal to the outside world.

 Still to be done: Rework the rest of Xalan to use the new code.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref CoroutineParser.java<BR><I>Committer's log entry: </I>Starting to phase out Coroutine*Parser* in favor of IncrementalSAXSource*.
 See comment in previous check-in; I just missed this one....<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/18/2001<BR><I>Modified: </I>java/src/org/apache/xml/dtm/ref DTMStringPool.java<BR><I>Committer's log entry: </I>doc.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>2.2.D7<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>07/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>2.2.D7<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>07/18/2001<BR><I>Removed: </I>java/src/org/apache/xml/dtm/ref DTMBuilder.java<BR><I>Committer's log entry: </I>Obsolete<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code (now deprecated).</I></FONT></TD></TR></TABLE>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D6</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P><B>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 the system class path.</B></P>

     <P>This beta release includes the following non-XSLTC code changes:</P>     
     <UL>
       <LI>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.<BR><BR></LI>
       <LI>Joseph Kesselman added chunked int array stuff to address our scaling problems that Mukund &amp; 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.<BR><BR></LI>       
       <LI>The Process class now outputs incrementally if the output is standard out.  This is mostly for testing purposes, but it makes general sense.<BR><BR></LI>
       <LI>Bug was fixed with setting the incremental flag in TransformerFactoryImpl.  Clearly the change was made but never tested.  Simply a missing 'else'.<BR><BR></LI>
       <LI>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.<BR><BR></LI>                     
       <LI>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.<BR><BR></LI>       
       <LI>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.<BR><BR></LI>
       <LI>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.<BR><BR></LI>
       <LI>David Bertoni added missing html element properties to SerializerToHTML.java.<BR><BR></LI>
       <LI>Shance Curcuru modified TransformerFactoryImpl.setAttribute() to accept a String (&quot;true&quot; or &quot;false&quot;) as well as a Boolean object to set the value of a Boolean attribute.<BR><BR></LI>
       <LI>TransformerHandlerImpl was threading when incrementality is turned off. Scott Boag has fixed this bug.</LI>       
     </UL>
</FONT></TD></TR></TABLE><BR>     
   <A name="dtm"><!--anchor--></A>
     <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.2.D2</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>This release includes the following changes:</P>
     <UL>
       <LI>Deprecation of the <A href="usagepatterns.html#compat">Xalan-Java 1 compatiblity API</A></LI>
       <LI>The DTM</LI>
       <LI>Other optimization work</LI>
     </UL>
     <P>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 (<A href="dtm.html">DTM</A>).</P>

<P>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 <A href="jira.html">bugs</A>).</P>

<P>The DTM and related work provides faster performance and less accumulation of garbage... though it is an
ongoing battle.  Brief summary:</P>
<UL>
<LI>The DTM identifies nodes with 32-bit integer handles.
The DTM has many features, including direct character dispatch to SAX2,
native DTM iterators and &quot;traversers&quot;, multiple document management, etc.<BR><BR></LI>
<LI>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
&quot;race&quot; conditions that occured in the original code, and should make Xalan
much more robust.<BR><BR></LI>
<LI>*Much* more robust XPath itteration.  The &quot;waiting&quot; 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.)<BR><BR></LI>
<LI>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.<BR><BR></LI>
<LI>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.<BR><BR></LI>
<LI>Serializers now only do internal buffering if they know they are writing
to a FileStream.<BR><BR></LI>
<LI>The variable stack mechanism has been redisigned, so that it is no
longer so interpretive, and we believe it is much more robust.<BR><BR></LI>
<LI> Some small amount of stylesheet rewriting (but not yet redundent
expression elimination), in particular to reduce full RTF creation and
interpretation.</LI>
</UL>
<P>Xalan-Java implements two DTM performance features that you can control with the TransformerFactory
<A href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String, java.lang.Object)">setAttribute()</A>
method. See <A href="dtm.html#settings">DTM performance settings</A></P>
     </FONT></TD></TR></TABLE><BR>
     <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.1.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>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.</P>
<P>Core source code updates:</P><UL><LI><I>Committed by </I>costin@apache.org<I> on </I>03/16/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Renamed &quot;assert()&quot; to &quot;assertion()&quot;.

 Assert can be a keyword, and brake the compilation.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/19/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer KeyWalker.java<BR><I>Committer's log entry: </I>Throw an error message if the key name in a key function was not defined<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/20/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Reworked &quot;chunk growth&quot; 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.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>03/20/2001<BR><I>Added: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Utility class to check your JVM environment for common problems<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>03/22/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Added more .jar sizes to jarVersions listing<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/22/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>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!<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/22/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Minor tweak to the javadoc.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/23/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>reset() versus setLength(0).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemForEach.java<BR><I>Committer's log entry: </I>Fix for bug# 1116, getMatchedTemplate throws ClassCastException.
 Don't push template unless it is a xsl:template.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/26/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates OutputProperties.java<BR><I>Committer's log entry: </I>Patches submitted by Patrick Moore &lt;patrickm@rioport.com&gt;
 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 &quot;Stream closed&quot; 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)

 &lt;http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-toolbox.html&gt;

 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).<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>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 &lt;patrickm@rioport.com&gt;).
 See my note on 3/27/2001 to Patrick for more info
 on the last two.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/27/2001<BR><I>Added: </I>java/src/org/apache/xalan/transformer TransformSnapshot.java
 TransformSnapshotImpl.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/29/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 ProcessorStylesheetElement.java
 ProcessorTemplateElem.java StylesheetHandler.java
 XSLTElementDef.java XSLTElementProcessor.java
 XSLTSchema.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/02/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/02/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions MethodResolver.java<BR><I>Committer's log entry: </I>Code cleanup submitted by Art Welch &lt;art_w@EASTPOINT.COM&gt;.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils TreeWalker.java<BR><I>Committer's log entry: </I>Add locator support to TreeWalker<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 QueuedStartElement.java<BR><I>Committer's log entry: </I>Small fix made for getCurrentNode.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>04/06/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils TreeWalker.java<BR><I>Committer's log entry: </I>Commented out extra call to getData()... this could be a big performance
 improvement for some stylesheets.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java TransformerImpl.java<BR><I>Committer's log entry: </I>Additional support for tooling. Allow tools to take a snapshot of context and 
restart execution at that point.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/10/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Misc stuff left out from previous check in<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/11/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncCurrent.java<BR><I>Committer's log entry: </I>Don't assume that the object returned by getSubContextList() is a 
PredicatedNodeTest object.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/11/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Create new TreeWalker constructor that takes a systemId parameter. Change 
TreeWalker to change fields in the locator and not set it for each node.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>04/17/2001<BR><I>Modified: </I>java/src/org/apache/xpath XPath.java<BR><I>Committer's log entry: </I>Fix Bugzilla bug:
 PR: 1106
 Submitted by: elharo@metalab.unc.edu<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>04/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql QueryParameter.java
 SQLExtensionError.java XConnection.java<BR><I>Committer's log entry: </I>Minor Javadoc updates (add @author name, remove declared but unthrown @throws)<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>04/18/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Support for Streamable Mode- John Gentilin<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/24/2001<BR><I>Modified: </I>java/src/org/apache/xpath/objects XObject.java<BR><I>Committer's log entry: </I>Resolve bugzilla bug 1015 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015&gt;.
 Fix prevents null pointer exceptions when null non-XSLT arguments are
 passed to an extension function.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions MethodResolver.java<BR><I>Committer's log entry: </I>Resolve bugzilla bug 1015 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015&gt;.
 Fix prevents null pointer exceptions when null non-XSLT arguments are
 passed to an extension function.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>Fix copy/paste error. Want to use TransformerFactoryImpl's class loader.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>04/24/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java<BR><I>Committer's log entry: </I>Keep a copy of current contextNodeList is there is one<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>04/25/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt EnvironmentCheck.java<BR><I>Committer's log entry: </I>Added checkDirForJars() which checks java.ext.dirs as well now<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>04/26/2001<BR><I>Added: </I>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<BR><I>Committer's log entry: </I>Add package.html for each package in javax.xml.transform.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Resolve bug 1496 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1496&gt; 
where xsl:param statements were not being reset properly if the TransformerImpl 
was reused.<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>04/27/2001<BR><I>Modified: </I>java/src/org/apache/xalan/stree DocImpl.java<BR><I>Committer's log entry: </I>Fix for #1561<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>04/29/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncExtFunction.java<BR><I>Committer's log entry: </I>Resolve bugzilla bug 1373 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1373&gt;.
 Added code to support return of Integer or Long by an external function.
 Code was contributed by Patrick Moore &lt;patmoore@ieee.org&gt;.<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/03/2001<BR><I>Modified: </I>java/src/javax/xml/transform/stream StreamResult.java
 StreamSource.java<BR><I>Committer's log entry: </I>Small fix to avoid file:////path that may fail on some JDK.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>05/04/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql package.html<BR><I>Committer's log entry: </I>Preliminary updates for John G's work.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>05/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Check for a null contextNodeList before returning its clone<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>05/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/stree StreeDOMBuilder.java<BR><I>Committer's log entry: </I>Set the element's level correctly, before we process attributes.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/08/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>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 &lt;johnkeyes@yahoo.com&gt; for reporting this bug.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>05/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Updated version number to 2.1.0<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>05/10/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>Updated version number to 2.1.0<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath/functions FuncExtFunction.java<BR><I>Committer's log entry: </I>Change submitted by Patrick Moore &lt;patmoore@ieee.org&gt; 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.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>05/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLTSchema.java<BR><I>Committer's log entry: </I>Set the correct order of xsl:include elements<BR><BR></LI><LI><I>Committed by </I>johng@apache.org<I> on </I>05/13/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Updates Javadocs
 Submitted by:John Gentilin mailto://johnglinux@eyecatching.com<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/14/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Correct typo introduced in revision 1.30 causing problems with transforms on 
Unix platforms.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/14/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemChoose.java<BR><I>Committer's log entry: </I>Correct bugzilla bug 1748 
&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1748&gt;.
 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.<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/15/2001<BR><I>Modified: </I>java/src/javax/xml/parsers DocumentBuilderFactory.java
 SAXParserFactory.java
 java/src/javax/xml/transform TransformerFactory.java<BR><I>Committer's log entry: </I>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 ).<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions ExtensionHandler.java
 ExtensionHandlerGeneral.java<BR><I>Committer's log entry: </I>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 ).<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 CompilingStylesheetHandler.java
 java/src/org/apache/xalan/serialize SerializerFactory.java<BR><I>Committer's log entry: </I>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 )<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>05/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/stree SourceTreeHandler.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>This is the &quot;thread pooling hook&quot;.

 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.<BR><BR></LI><LI><I>Committed by </I>Gary L Peskin &lt;garyp@firstech.com&gt;<I> on </I>05/15/2001<BR><I>Committer's log entry: </I>
&gt; Use the context class loader if available.
&gt;
&gt; The implementation is based on ExtensionHandler, and it's needed in order
&gt; to work in certain environments ( like tomcat ).
&gt;
&gt;<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>05/16/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ExtensionError.java<BR><I>Committer's log entry: </I>Fixed &quot;conflict&quot; in javadoc comments.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>05/16/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql package.html<BR><I>Committer's log entry: </I>Editing pass.<BR><BR></LI><LI><I>Committed by </I>tmiller@apache.org<I> on </I>05/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xsltc TransletOutputHandler.java<BR><I>Committer's log entry: </I>bug # 1406 fixed, omit xml header implemented<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>05/17/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Update Javadoc and remove commented out reference to properties file
 PR:Bugzilla1627<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer ResultTreeHandler.java<BR><I>Committer's log entry: </I>Resolve bug 1330 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1330&gt;.
 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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/18/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>Resolve bug 1762 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1762&gt;.
 TransformerFactoryImpl's URIResolver was not propagated to created 
Transformers.
 Modified code to propagate.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>05/19/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils TreeWalker.java
 SystemIDResolver.java<BR><I>Committer's log entry: </I>Catch SecurityException whenever accessing System.getProperty(&quot;user.dir&quot;);
 minor javadoc update<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>05/21/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>05/21/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates OutputProperties.java<BR><I>Committer's log entry: </I>Catch SecurityException as needed
 PR: Bugzilla1258<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/21/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates OutputProperties.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/21/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates OutputProperties.java<BR><I>Committer's log entry: </I>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 &lt;dims@yahoo.com&gt; for this code and for 
reporting this bug.
 loadPropertiesFile should eventually be moved into a thread-specific class.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>05/21/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java
 java/src/org/apache/xalan/serialize CharInfo.java
 java/src/org/apache/xpath/functions FuncSystemProperty.java<BR><I>Committer's log entry: </I>Modify getResourceAsStream calls to use the contextClassLoader, if available.
 This is a temporary fix until we can centralize this function.<BR><BR></LI></UL><TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This release includes no updates of the compatibility source code.</I></FONT></TD></TR></TABLE>
 </FONT></TD></TR></TABLE><BR>
 
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java 2.0.1</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>This release includes a number of bug fixes to the Xalan-Java and TrAX core and Xalan-Java 1 compability API. We have also</P>
<UL>
  <LI>Entered all known Xalan-Java 2 <A href="jira.html">bugs</A> in the Apache Bugzilla database<BR><BR></LI>
  <LI>Added support for using custom URIResolver, EntityResolver, and ContentHandler implementations with the <A href="commandline.html">command-line utility</A><BR><BR></LI> 
  <LI>Upgraded from Ant 1.2 to Ant 1.3 for our <A href="builds.html">builds</A> (the new ant.jar is in the bin directory).</LI>
</UL>
<P>Core source code updates:</P>
<UL>
<LI><I>Committed by </I>sboag@apache.org<I> on </I>02/06/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes ChildWalkerMultiStep.java<BR><I>Committer's log entry: </I>Fix for bug reported by &quot;Chris P. McCabe&quot; &lt;chris_mccabe@choicehotels.com&gt;
 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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Fixes for exceptions being thrown that weren't being passed through
 the error listener.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/07/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes FollowingWalker.java<BR><I>Committer's log entry: </I>Fix for bug reported by Dave Haffner &lt;dave.haffner@xmls.com&gt;
 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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/07/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes PrecedingWalker.java<BR><I>Committer's log entry: </I>Fix for bug reported by Dave Haffner &lt;dave.haffner@xmls.com&gt;
 02/06/2001 04:03 AM
 In nextSibling(), don't return null if isAncestorOfRootContext, instead
 do next.getFirstChild().<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/07/2001<BR><I>Modified: </I>java/src/org/apache/xpath SourceTreeManager.java<BR><I>Committer's log entry: </I>Fix for bug reported by anders.domeij@uc.se
 02/07/2001 09:35 AM
 removed extra bogus TransformerException decl in resolveURI<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/08/2001<BR><I>Modified: </I>java/src/org/apache/xalan/stree SourceTreeHandler.java<BR><I>Committer's log entry: </I>Fix bug reported by Jason Harrop &lt;jharrop@bigpond.net.au&gt;
 02/07/2001 08:12 PM
 Don't process comment or whitespace events if inside a startDTD/endDTD
 event.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/10/2001<BR><I>Modified: </I>java/src/org/apache/xpath/axes WalkerFactory.java<BR><I>Committer's log entry: </I>In indirect response to bug posted by &quot;Thee Boon Hoo&quot; &lt;theebh@newstakes.com&gt;
 02/07/2001 09:37 PM

 &quot;//table[1]&quot; patterns would give one node
 when they should have given 2, when applied to Boon Hoo's
 source.
 &quot;//table[1]&quot; is equivelent to
 &quot;/descendant-or-self::node()/table[1]&quot;,
 and so must return the first table child
 of each table-inst element.

 An optimization was optimizing this to
 &quot;/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 &quot;//foo[xx]&quot;
 patterns.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor StylesheetPIHandler.java
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>Patch for Dmitri IIyin to use the specified URIResolver.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemNumber.java<BR><I>Committer's log entry: </I>Number Expression should be evaluated then rounded up.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Create a document fragment for the output node, for -flavor d2d.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/13/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler Compiler.java<BR><I>Committer's log entry: </I>Better error message when quo is used.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/13/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Remove extra method/call to TransformerImpl.executeChildTemplates()<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/13/2001<BR><I>Modified: </I>java/src/org/apache/xpath/patterns NodeTest.java<BR><I>Committer's log entry: </I>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 &quot;Michael Kay&quot; &lt;mhkay@iclway.co.uk&gt;,
 02/08/2001 08:57 AM.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ColumnData.java<BR><I>Committer's log entry: </I>In getData() return an empty string instead of null if there is
 no data to be obtained.
 In response to bug reported by &quot;Michael Kay&quot; &lt;mhkay@iclway.co.uk&gt;,
 02/08/2001 08:57 AM.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>02/19/2001<BR><I>Modified: </I>java/src/org/apache/xalan/extensions MethodResolver.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/19/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ColumnHeader.java
 RowSet.java XStatement.java<BR><I>Committer's log entry: </I>Use null nodetest to mean the same as &quot;node()&quot;. This fixes a bug reported
 by &quot;Voytenko, Dimitry&quot; &lt;DVoytenko@SECTORBASE.COM&gt;
 where &lt;xsl:copy-of select=&quot;sql:query(...)&quot;/&gt;
 crashes with NullPointerException, i.e.
 there are cases where we really don't want
 to set the NodeTest.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/20/2001<BR><I>Modified: </I>java/src/org/apache/xpath/compiler XPathParser.java<BR><I>Committer's log entry: </I>Check for null token before checking if it is a letter<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/20/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>Fix made for bug reported by &quot;Glencross, Christian&quot; 
&lt;Christian.Glencross@gs.com&gt;
 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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>02/21/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Extensions.java<BR><I>Committer's log entry: </I>Correct implementation of string value of a node.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>02/21/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>Added experimental usage metatag to all classes in this package,
 and an explanatory note to package.html.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/22/2001<BR><I>Modified: </I>java/src/org/apache/xalan/stree ElementImpl.java<BR><I>Committer's log entry: </I>Bug fix attributed to Norman Walsh &lt;ndw@nwalsh.com&gt;, 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 &lt; 0.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/22/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>Implement DeclHandler for identity transforms<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>02/22/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>Fix for bug originally reported by Daryl Beattie &lt;DarylB@screamingmedia.com&gt;
 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.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>02/23/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTInfo.properties<BR><I>Committer's log entry: </I>Changed version to 2.0.1<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>02/23/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor XSLProcessorVersion.java<BR><I>Committer's log entry: </I>Changed version to 2.0.1<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>02/28/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTErrorResources.java<BR><I>Committer's log entry: </I>Update text of error messages
 Submitted by: Andreas Zehnpfund<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>02/28/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Update printArgOptions() with better text and to better reflect actual
 options that are currently supported; catch missing -IN argument<BR><BR></LI><LI><I>Committed by </I>jkesselm@apache.org<I> on </I>03/05/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>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 &quot;chunk growth&quot; algorithms.
 Currently set for fixed-sized chunks of 8Kch in main tree, .5Kch in RTF.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/06/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>03/06/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemParam.java
 java/src/org/apache/xpath Arg.java VariableStack.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>03/07/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils FastStringBuffer.java<BR><I>Committer's log entry: </I>Correct operation when length of content to be appended is zero.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/07/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToXML.java<BR><I>Committer's log entry: </I>Fix closing out doctype declaration<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/08/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>Change SystemIdResolver to default to user.dir if the base URI is null<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>03/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>Parameters set with setParameter were available to stylesheet as variable 
references ($myParam) even though there was no xsl:param element to receive it.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/09/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<BR><I>Committer's log entry: </I>Check if there is a DeclHandler before calling it.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils WrappedRuntimeException.java<BR><I>Committer's log entry: </I>Patch attributed to Patrick Moore &lt;patrickm@rioport.com&gt; on 03/09/2001.
 Adds another constructor to pass in the error message.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemAttribute.java
 ElemElement.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils SystemIDResolver.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer TransformerImpl.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/transformer QueuedEvents.java
 QueuedStartElement.java ResultTreeHandler.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize SerializerToHTML.java<BR><I>Committer's log entry: </I>Applied patches from dmitri.ilyin@memiq.com (Dmitri Ilyin)
 from http://nagoya.apache.org/bugzilla/show_bug.cgi?id=705.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xpath XPathAPI.java<BR><I>Committer's log entry: </I>Applied patch submitted by nboyd@atg.com (Norris Boyd)
 at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=702.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/serialize Encodings.java<BR><I>Committer's log entry: </I>Applied patch submitted by havardw@underdusken.no (H嶡rd Wigtil).
 Also added &quot;XXX-X&quot; variants for all &quot;XXX_X&quot; 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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates ElemTemplateElement.java
 StylesheetRoot.java<BR><I>Committer's log entry: </I>Minor changes to better bottleneck throwing of Runtime exceptions
 during processing.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql XConnection.java
 XStatement.java<BR><I>Added: </I>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java ExtensionError.java
 PooledConnection.java QueryParameter.java
 SQLExtensionError.java XConnectionPoolManager.java<BR><I>Committer's log entry: </I>These are John Gentilin &lt;johnglinux@eyecatching.com&gt;
 patches for connection pooling and parameterized
 queries. These should be considered to be unstable
 right now, as we are still working on some things.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/11/2001<BR><I>Modified: </I>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<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/12/2001<BR><I>Modified: </I>java/src/org/apache/xpath/patterns NodeTest.java<BR><I>Committer's log entry: </I>Xerces at some point decided to use &quot;&quot; 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 &quot;&quot; namespace to null for now, until
 we get this resolved.

 The gist of the discussion on xalan-dev regarding this is:

 &gt;&gt;1. Declare the Xerces-J support of schemas to have a bug and ask that
 &gt;&gt;Xerces be corrected to always use a null namespace URI to indicate that
 &gt;&gt;there is no default namespace. Even if the Xerces people change this
 &gt;&gt;behavior, is this correct?
 &gt;
 &gt; Yes. If your description of the problem is accurate (you should probably
 &gt; submit a more detailed case so it can be reproduced in the lab), this is a
 &gt; parser/DOM-builder bug.<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>03/12/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ExtensionError.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils TreeWalker.java<BR><I>Committer's log entry: </I>Added back in the TreeWalker(ContentHandler contentHandler)
 constructor, because I'm worried I'll break more dependent code.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Implement new arguments for the command line interface: URIResolver, 
EntityResolver and ContentHandler<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/templates FuncFormatNumb.java<BR><I>Committer's log entry: </I>Fix error message to say that 2 or 3 arguments are required.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/processor ProcessorLRE.java
 java/src/org/apache/xalan/res XSLTErrorResources.java<BR><I>Committer's log entry: </I>Better error message for missing or incorrect XSLT namespace declaration in a 
stylesheet<BR><BR></LI><LI><I>Committed by </I>garyp@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib Redirect.java
 java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/14/2001<BR><I>Modified: </I>java/src/org/apache/xpath VariableStack.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>curcuru@apache.org<I> on </I>03/14/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>Remove check for missing -IN arg; there are a number of use
 cases for calling Process.main without an XML document<BR><BR></LI><LI><I>Committed by </I>costin@apache.org<I> on </I>03/14/2001<BR><I>Modified: </I>java/src/org/apache/xalan/xslt Process.java<BR><I>Committer's log entry: </I>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.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/14/2001<BR><I>Modified: </I>java/src/org/apache/xml/utils StringVector.java<BR><I>Committer's log entry: </I>Added missing @serial Javadoc tags.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/15/2001<BR><I>Modified: </I>java/src/org/apache/xalan/lib/sql ConnectionPool.java
                        DefaultConnectionPool.java ExtensionError.java
                        SQLExtensionError.java XConnection.java
                        XConnectionPoolManager.java XStatement.java<BR><I>Committer's log entry: </I>Update from John Gentilin &lt;johnglinux@eyecatching.com&gt; to
  fix connection cleanup.<BR><BR></LI></UL><P>Compatibility source code updates:</P><UL><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/02/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java
 XSLTResultTarget.java<BR><I>Committer's log entry: </I>Implement some more methods for compatibility<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>02/02/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<BR><I>Committer's log entry: </I>Fixed javadoc for api that was just added back.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>02/02/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTResultTarget.java<BR><I>Committer's log entry: </I>Fixed javadoc for api that was just added back.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/02/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<BR><I>Committer's log entry: </I>Fix problem with calling the processor with a liaison<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/02/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<BR><I>Committer's log entry: </I>Fix problem where source file was being parsed more than once and if using an 
input stream, we would get a read error<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/12/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<BR><I>Committer's log entry: </I>Set system id in stylesheet handler<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/14/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<BR><I>Committer's log entry: </I>Call local setSystemId.<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/15/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<BR><I>Committer's log entry: </I>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<BR><BR></LI><LI><I>Committed by </I>mmidy@apache.org<I> on </I>02/22/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xslt StylesheetRoot.java<BR><I>Committer's log entry: </I>Add getOutputMethod API.<BR><BR></LI><LI><I>Committed by </I>dleslie@apache.org<I> on </I>03/07/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xpath/xml
 XMLParserLiaisonDefault.java<BR><I>Committer's log entry: </I>Put in Apache copyright.<BR><BR></LI><LI><I>Committed by </I>sboag@apache.org<I> on </I>03/13/2001<BR><I>Modified: </I>java/compat_src/org/apache/xalan/xpath/xml TreeWalker.java
 java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<BR><I>Committer's log entry: </I>Made changes for change to API for XalanJ2 TreeWalker, which
 now requires that the DOM helper be created by the caller.</LI>
 </UL>
</FONT></TD></TR></TABLE><BR>

<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java version 2.0.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>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 <A href="http://jakarta.apache.org/bsf/index.html" target="_top">Bean Scripting Framework (BSF)</A> release candidate 2.2, which fixes a bug running JPython extensions.</P>
<P><B>Core bug fixes:</B></P>
<UL>
  <LI>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).<BR><BR></LI>
  <LI>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.<BR><BR></LI>
  <LI>Fixed a problem with null namespace being passed from xsl:element. This bug also surfaced while processing DocBook
   stylesheets.<BR><BR></LI>
  <LI>In the interest of stability, we now treat &quot;unknown error in XPath&quot; as a fatal error.<BR><BR></LI>
  <LI>Added support in stylesheet processing instructions for &quot;text/xml&quot; and &quot;application/xml+xslt&quot; mime types.<BR><BR></LI>
  <LI>Fixed tokenizing of stylesheet processing instructions to allow parameters to be passed to server in href attributes.<BR><BR></LI>
  <LI>Fixed a bug passing Transformer creation error messages to ErrorListener when an ErrorListener has been set on
   TransformerFactory.<BR><BR></LI>
  <LI>When using an Exception to instantiate a FactoryConfigurationError (extends Error), we now propagate the Exception message to 
  super().<BR><BR></LI>
  <LI>Added defensive code to ElemTemplateElement for handling a null URI.<BR><BR></LI>
  <LI>When using an Exception to instantiate a TransformerException (extends Exception), we now propagate the Exception message to super() 
  rather than a generic message.<BR><BR></LI>
  <LI>Fixed a bug (the generation of an unwanted entity reference) performing the identity transformation 
  (see <A href="usagepatterns.html#serialize">Serializing output</A>) with an XML document containing a DOCTYPE
   declaration.<BR><BR></LI>
   <LI>Message manager modified so that the SourceLocator must always be passed in,
  which will make a major difference in getting line number information.<BR><BR></LI> 
  <LI>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.<BR><BR></LI>  
  <LI>Bug fixed with namespace contexts in the stylesheet processor.
  The bug could cause &lt;a xmlns:a=&quot;x&quot;&gt;&lt;b&gt; to produce &lt;a xmlns:a=&quot;x&quot;&gt;&lt;b xmlns:a=&quot;x&quot;&gt;.<BR><BR></LI>  
  <LI>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 &quot;Stylesheet directed termination&quot;.<BR><BR></LI>
  <LI>In TransformerException, check that the cause != null when checking for a contained exception.<BR><BR></LI>
  <LI>Fixed a problem validating non-namespaced attributes and a problem allowing non-namespaced attributes to be children of the
   stylesheet element.<BR><BR></LI>
   <LI>Fixed checking of number of arguments in document() function.<BR><BR></LI>
   <LI>Fixed problem with mutation of templates at run time. Templates resolution now takes place during the compose() method.<BR><BR></LI>
   <LI>Fixed some minor threading issues in org.apache.xalan.stree (Child, Parent, ElementImpl, SourceTreeHandler).<BR><BR></LI>
   <LI>Synchronized TrAX API functions subject to mutation to prevent mutation during a transformation.<BR><BR></LI>
   <LI>Fixed bug reported by Jano Elovirta: substring() was returning an error if the start index is larger than the string.<BR><BR></LI>   
   <LI>Set StringKey.toString() to return the underlying String (m_str), thus avoiding a potential symmetry problem with the equals() method
   reported by Ito Kazumitsu.<BR><BR></LI>
   <LI>In response to note from Ito Kazumitsu, changed Java encoding name &quot;EUCJIS&quot; in FormatterToXML to &quot;EUC_JP&quot;.<BR><BR></LI>
   <LI>When Xalan creates a FileOutputStream, it now closes the stream before exiting.<BR><BR></LI>
   <LI>Fixed handling of an exception that can be thrown while building a DOM.<BR><BR></LI>
   <LI>Fixed a problem reported by Dimitry Voytenko serializing compiled stylesheets.<BR><BR></LI>
   <LI>For support of applets, modified TransformerFactory System.getProperty() calls to catch SecurityExceptions.<BR><BR></LI>
   <LI>Fixed a bug reported by Krishna Mohan Meduri setting output properties.<BR><BR></LI>
   <LI>Fixed error recovery when xsl:element encounters a bad name or unresolvable prefix.<BR><BR></LI>
   <LI>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<BR><BR></LI>
   <LI>Fixed bug with cloned iterators reported by Tim Sean.<BR><BR></LI>
   <LI>Fixed null pointer exception that could occur with getValue(&quot;xxx&quot;).<BR><BR></LI>
   <LI>Fixed bug reported by Tim Sean handling the xml:space attribute.</LI>
</UL>
<P><B>Bug fixes in the Xalan-Java 1 compatibility API:</B></P>
<UL>
  <LI>Fixed ProblemListener (for processing error messages) to derive from Xalan-Java 2 ErrorHandler.<BR><BR></LI>
  <LI>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).<BR><BR></LI>    
  <LI>Added XPathSupport and XPathSupportDefault, and fixed the derivation of XObject sub-types (XString, etc.).<BR><BR></LI>
  <LI>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.</LI>
</UL>
</FONT></TD></TR></TABLE><BR>

<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java version 2.0.D07</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>Xalan-Java 2.0.D07 incorporates a <A href="usagepatterns.html#compat">Xalan-Java 1 compatibility jar</A>, some performance enhancements, and a number of bug fixes for bugs found in version 2.0.D06.</P>
<UL>
<LI>Fixed handling of disable-output-escaping=&quot;no&quot;.  Previously, once it was turned on, it could not be turned off.<BR><BR></LI>
<LI>Fixed a bug with whitespace handling where Xalan was incorrectly checking for whitespace 
    stripping before collation of multiple whitespace events into a single text node.<BR><BR></LI>
<LI>Whitespace stripping wasn't working with input DOMs before.  This is now fixed.<BR><BR></LI>
<LI>Fixed many exception handling problems and problems with error reporting.<BR><BR></LI>
<LI>Fixed a bug resetting parameters in Transformer clearParameters().<BR><BR></LI>
<LI>Fixed a bug where CDATA sections were not matching the text() node test.<BR><BR></LI>
<LI>Made better memory allocation problem with result tree fragments.<BR><BR></LI>
<LI>Made result tree fragment parsing of numbers consistent with strings.<BR><BR></LI>
<LI>Exceptions thrown from extensions should now be properly reported via the error listener.<BR><BR></LI>
<LI>Fixed hard-coded stack dump set off by m_reportInPostExceptionFromThread variable.<BR><BR></LI>
<LI>Fixed intermittent threading problem with text nodes being dropped.<BR><BR></LI>
<LI>Fixed problem with variable evaluation inside of union expressions.</LI>
</UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java version 2.0.D06</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>We have fixed the bugs reported in Xalan-Java 2.0.D05. Along with several other enhancements, 
we have also fixed a number of bugs found by testing and our users:</P>
<UL>
<LI>Fixed some threading problems and improved support for handling Exceptions thrown in a secondary thread.<BR><BR>
Note: To support incremental output, Xalan-Java performs the transformation in a second thread while building the source tree in the main thread.<BR><BR></LI>
<LI>Fixed problems encountered in piping (utilizing transformation output as input for another transformation).<BR><BR></LI>
<LI>Fixed problems handling attributes and adding attributes to result tree.<BR><BR></LI>
<LI>Added defensive checking for null entities, null namespaces, and empty strings passed in for URIs and local names.<BR><BR></LI>
<LI>We now conform to the SAX convention of representing null namespaces with empty strings.<BR><BR></LI>
<LI>Fixed a bug encountered evaluating a variable in a predicate expression applied to child nodes.<BR><BR></LI>
<LI>Changed names of serializers from FormatterTo<I>Xxx</I> to SerializerTo<I>Xxx</I>. See 
<A href="apidocs/org/apache/xalan/serialize/package-summary.html">Package org.apache.xalan.serialize</A>.<BR><BR></LI>
<LI>Improved debugging support in a number of areas.</LI>
</UL>
</FONT></TD></TR></TABLE><BR>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Changes for Xalan-Java version 2.0.D05</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>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:</P>
<P><B>TrAX</B></P>
<P>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&reg; <A href="http://jcp.org/aboutJava/communityprocess/review/jsr063/" target="_top">Java Specification Request 63</A>. 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 <A href="trax.html">TrAX (Transformation API for XML)</A>, and review <A href="usagepatterns.html">Usage Patterns</A>.</P>
<A name="outputprops"><!--anchor--></A><P><B>Output properties</B></P>
<P>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 <CODE><FONT face="courier, monospaced">getSerializer(&quot;xml&quot;)</FONT></CODE>, for example, with <CODE><FONT face="courier, monospaced">getSerializer(OutputProperties.getDefaultMethodProperties(&quot;xml&quot;))</FONT></CODE>.</P>
<P>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.</P>
<P>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<BR><CODE><FONT face="courier, monospaced">{http\u003a//xml.apache.org/xslt}use-url-escaping=no</FONT></CODE><BR>
and you can control indenting with<BR>
<CODE><FONT face="courier, monospaced">{http\u003a//xml.apache.org/xslt}indent-amount=<I>n</I></FONT></CODE></P>
<TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>The colon after the &quot;http&quot; protocol must be escaped.</I></FONT></TD></TR></TABLE>
<P>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:</P>
<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;xsl:stylesheet xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
         xmlns:xalan=&quot;http://xml.apache.org/xslt&quot; version=&quot;1.0&quot;&gt;

  &lt;xsl:output xalan:entities=&quot;myentities.ent&quot;/&gt;

  &lt;xsl:template match=&quot;/&quot;&gt;
    &lt;out&gt;&amp;#125;&lt;/out&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
<P>=== myentities.ent ===</P>
<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>quot 34
amp 38
lt 60
gt 62
lala 125</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
<P>The output is:</P>
<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;out&gt;&amp;lala;&lt;/out&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
<P>See also <A href="usagepatterns.html#outputprops">Setting output properties in your stylesheets</A>.</P>
</FONT></TD></TR></TABLE><BR>
</TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG alt="dot" height="1" src="resources/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
              Copyright &copy; 2006 The Apache Software Foundation.
              All Rights Reserved.
            </I></FONT></TD></TR></TABLE></BODY></HTML>