<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>ASF: History of software changes</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
</head>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
<body>
<div id="title">
<table class="HdrTitle">
<tbody>
<tr>
<th rowspan="2">
<a href="../index.html">
<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
</a>
</th>
<th text-align="center" width="75%">
<a href="index.html">Xalan XSL Transformer User's Guide</a>
</th>
</tr>
<tr>
<td valign="middle">History of software changes</td>
</tr>
</tbody>
</table>
<table class="HdrButtons" align="center" border="1">
<tbody>
<tr>
<td>
<a href="http://www.apache.org">Apache Foundation</a>
</td>
<td>
<a href="http://xalan.apache.org">Xalan Project</a>
</td>
<td>
<a href="http://xerces.apache.org">Xerces Project</a>
</td>
<td>
<a href="http://www.w3.org/TR">Web Consortium</a>
</td>
<td>
<a href="http://www.oasis-open.org/standards">Oasis Open</a>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navLeft">
<ul>
<li>
<a href="resources.html">Resources</a>
<br />
</li>
<li>
<a href="http://xalan.apache.org/index.html">Home</a>
</li></ul><hr /><ul>
<li>
<a href="index.html">Xalan-J 2.7.2</a>
</li>
<li>
<a href="charter.html">Charter</a>
</li></ul><hr /><ul>
<li>
<a href="whatsnew.html">What's New</a>
</li>
<li>
<a href="readme.html">Release Notes</a>
</li></ul><hr /><ul>
<li>
<a href="overview.html">Overview</a>
</li>
<li>
<a href="downloads.html">Download/Build</a>
</li>
<li>
<a href="getstarted.html">Getting Started</a>
</li>
<li>
<a href="xsltc_usage.html">Using XSLTC</a>
</li></ul><hr /><ul>
<li>
<a href="faq.html">FAQs</a>
</li></ul><hr /><ul>
<li>
<a href="samples.html">Sample Apps</a>
</li>
<li>
<a href="commandline.html">Command Line</a>
</li></ul><hr /><ul>
<li>
<a href="features.html">Features</a>
</li>
<li>
<a href="trax.html">Transform API</a>
</li>
<li>
<a href="xpath_apis.html">XPath API</a>
</li>
<li>
<a href="usagepatterns.html">Usage Patterns</a>
</li></ul><hr /><ul>
<li>
<a href="apidocs/index.html">Xalan-J API</a>
</li>
<li>
<a href="public_apis.html">Public APIs</a>
</li>
<li>
<a href="dtm.html">DTM</a>
</li></ul><hr /><ul>
<li>
<a href="extensions.html">Extensions</a>
</li>
<li>
<a href="extensionslib.html">Extensions Library</a>
</li>
<li>
<a href="extensions_xsltc.html">XSLTC Exts</a>
</li></ul><hr /><ul>
<li>
<a href="design/design2_0_0.html">Xalan 2 Design</a>
</li>
<li>
<a href="xsltc/index.html">XSLTC Design</a>
</li></ul><hr /><ul>
<li>
<a href="builds.html">Building a release</a>
</li>
<li>
<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
</li>
<li>
<a href="bugreporting.html">Bug Reporting</a>
</li></ul><hr /><ul>
<li>
<a href="contact_us.html">Contact us</a>
</li>
</ul>
</div>
<div id="content">
<h2>History of software changes</h2>
<p>The following sections list the core software changes in each release since Xalan-Java version 2.0.D01.</p>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">For XSLTC changes since XSLTC was incorporated into Xalan-Java, see
                        <a href="xsltc_history.html">XSLTC software changes</a>.</td>
</tr>
</table>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.7.0</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/03/04<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Submitted by: Brian Minchau<br />
Modified code for potential extension of classes with callbacks to the extensions.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/03/11<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>2004/03/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FunctionTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch to hide static function table in FunctionTable class. We do not want to expose this table to others.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>2004/03/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/04/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/objects 
DTMXRTreeFrag.java XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/04/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 28435<br />
Submitted by:	Brian Minchau<br />
Reviewed by:	Henry Zongaro<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/04/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2004/05/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/style/stylesheets designdoc2html.xsl<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2004/05/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs xml-site-style.tar.gz<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/05/03<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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="yes" and standalone="no" ).
Submitted by:	Brian Minchau<br />
Reviewed by:	Sarah McNamara<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/05/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/05/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Submitted by:	Brian Minchau<br />
Reviewed by:	Christine Li<br />
Fixing binary compatibility (serialization/de-serialization) of XSLTProcessorApplet.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/06/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/06/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "chunks". John's fix uses a 
"long" to do the arithemetic because multiplying by the chunk number first 
could cause an overflow.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/06/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes ChildIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>aruny@apache.org<b>
<i> on </i>
</b>2004/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Description: Improper Serialization of document type declaration in xml document.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2004/07/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/07/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToTextStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/07/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/07/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XString.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Submitted by:	Yash Talwar<br />
Reviewed by:	Brian Minchau<br />
Fix for bugzilla 29655.<br />
<br />
</li>

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

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

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

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

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added serialVersionUID for classes which implement Serializable interface.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/08/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/08/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Minor changes to CharInfo to map charaters to decorated entities (e.g. "&amp;lt;" ) 
rather than just entity names (e.g. "lt"), which is a minor performance improvement.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/09/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerTraceWriter.java ToStream.java 
WriterChain.java WriterToASCI.java WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/09/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/09/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 27522<br />
Submitted by:	Brian Minchau<br />
committing patch from bugzilla 27522.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2004/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2004/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2004/09/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "*-nojardepends" rules to either "*-compile" or "*-build" to make them more intuitive.
Reviewed by Christine Li.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/10/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/patterns NodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "pre" 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 "pre",
without regard to the associated URI. The patch was reviewed by myself (zongaro@ca.ibm.com).<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/operations Variable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorNamespaceAlias.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Null Pointer Exception when namespace-alias element says to use "#default" namespace but there is no default namespace.
PR: XALANJ-1967<br />
Submitted by:	Yash Talwar<br />
Reviewed by:	Brian Minchau<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/10/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/10/13<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/14<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
PR: XALANJ-1891<br />
Submitted by:	Brian Minchau<br />
Reviewed by:	Yash Talwar<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/14<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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 "public".<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils CharKey.java Trie.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.SERIALIZER<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/10/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin serializer.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2004/10/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java XConnection.java SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/10/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>
A patch to fix Bug XALANJ-1708. Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2004/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/11/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/11/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<br />
<b>
<i>Committer's log entry: </i>
</b>
The latest Rhino1_5R5 checks for the script language line/column no.&gt;=0. Fixed for bug XALANJ-1887.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/11/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin bsf.jar bsf.LICENSE.txt bsf.README.txt<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/11/12<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/11/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "this" 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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/11/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2004/11/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix a memory leak problem in DTMManager (XALANJ-1999).<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/12/15<br />
<b>
<i>Modified: </i>
</b> Many files....<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2004/12/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Partial fix for bug XALANJ-2021.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Other languages, for XALANJ-2021.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer/utils MsgKey.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/12/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Serializer messages were copied into a message file in the
org.apache.xml.serializer.utils package.
The serializer messages in this file are now "dead", so they are being deleted.
This is part of the cleanup with XALANJ-2021.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/12/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNamedNodeMap.java DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/01/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2005/01/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for XALANJ-2013.  Duplicate time zone string returned from EXSLT time() function.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/01/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/01/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.MF MANIFEST.SERIALIZER manifest.xsltc<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for Jira bug report XALANJ-1852.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/01/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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("", "").  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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/01/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath CachedXPathAPI.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/01/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/01/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/02/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/02/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res 
XPATHErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for Jira bug report XALANJ-1478.<br />

In the recursive descent parsing of an ill-formed XPath expression like "2+",
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/02/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/trax ExampleContentHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/02/11<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/02/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java xml-xalan/java/src/org/apache/xml/serializer 
TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/02/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for XALANJ-2037.  The trace information doesn't have the right location information in this case.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java ExtendedContentHandler.java SerializerBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/02/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java SerializationHandler.java SerializerBase.java 
ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/02/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils URI.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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="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>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/03/02<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/03/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates 
ElemExtensionCall.java ElemLiteralResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added implementation for getAttribute, getAttributeNS and getAttributes for LRE. A fix for bug report XALANJ-1526.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/03/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for XALANJ-2026.  Fixes typo in Debugger interface code example.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/03/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer/utils 
MsgKey.java SerializerMessages.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/03/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/03/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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: 
"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."<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/03/23<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/03/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/domapi package.html<br />
<b>
<i>Committer's log entry: </i>
</b>
This resolves XALANJ-2085. Sarah McNamara has reviewed this change.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>ytalwar@apache.org<b>
<i> on </i>
</b>2005/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/04/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Applying patch in XALANJ-2105.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/05/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
JAXP 1.3 integration. Integrate the Sun donated JAXP 1.3 implementation into the head branch.<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/05/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/05/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java 
xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Support DOMResult.nextSibling in XalanJ Interpretive. If nextSibling is not null, then result nodes are inserted
before it.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/05/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/XPathAPI ApplyXPathJAXP.java foo.xml XPathResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/05/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java 
ExtensionNamespaceContext.java XPathFunctionImpl.java XPathFunctionResolverImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for XALANJ-2126. This is a sample implementation of XPathFunctionResolver, with support for
Java and EXSLT extension functions.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/05/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/XPathAPI ExtensionFunctionResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/05/31<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/05/31<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/05/31<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added "nowrap" 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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/06/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Applying patcth for JIRA XALANJ-2093. Adding a xalan:line-separator extension output attribute.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/03<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/07<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/15<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Patch for XALANJ-2124. Update the online documentation to include descriptions on the new JAXP 1.3 features:<br />
1. Add a new "XPath API" 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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/META-INF/services javax.xml.xpath.XPathFactory<br />
<b>
<i>Committer's log entry: </i>
</b>
Service provider file for javax.xml.xpath.XPathFactory.<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Update the source and binary of xml-apis.jar.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Java docs cleanup. Remove the word "Experimental" 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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2005/06/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Add xml-apis.jar to boot classpath to fix a build problem with JDK 1.4.<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2005/06/29<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/07/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "file:/" where it used to
begin with "file:///".  TransformerIdentityImpl had a dependency on the old
behaviour.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Changing "&lt;!DOCTYPE HTML" to "&lt;!DOCTYPE html" 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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for XALANJ-2143.   Javadoc improvement for TransformerImpl.setOutputProperty(name,value).<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "concurrently" when referring to the XPath module.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java serializer.README.txt xalan.README.txt<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.bat build.sh build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/AppletXMLtoHTML client.html README.html xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/07/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.src xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2005/07/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils XMLString.java XMLStringDefault.java xml-xalan/java/src/org/apache/xpath/objects 
XString.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2005/07/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: XALANJ-2113<br />
Submitted by:		 John Gentilin<br />
Reviewed by:		 Henry Zongaro<br />
<br />
</li>

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

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

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

<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2005/07/27<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
PR: XALANJ-2172<br />
Obtained from: Eric Everman<br />
Submitted by: Eric Everman / John Gentilin<br />
Reviewed by: Yash Talwar<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/08/03<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xml/serializer ToTextStream.java Encodings.properties ToHTMLStream.java
ToStream.java EncodingInfo.java ToXMLStream.java Encodings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mcnamara@apache.org<b>
<i> on </i>
</b>2005/08/04<br />
<b>
<i>Modified: </i>
</b> java/samples/extensions/sql/show-error invalidQuery.xsl invalidPQuery.xsl invalidConn.xsl<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2005/08/04<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xml/serializer ToStream.java EncodingInfo.java<br />
java/src/org/apache/xml/serializer/utils SerializerMessages.java MsgKey.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2005/08/05<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
PR: XALANJ-2183.<br />
<br />
</li>

</ul>


<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.6.0</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/11/24<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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,
"http://example.org:abc" and "http://example.org:@abc" respectively represented
an element and an attribute named abc in the http://example.org namespace;
"?abc" represented a namespace prefix of abc.<br />
<br />

With this change, the namesArray will have entries for "abc" in all three
cases; the urisArray will contain entries for "http://example.org" 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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/11/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/11/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 24278<br />
<br />
Submitted by:	Brian Minchau<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/11/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToXMLSAXHandler.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/11/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 24958<br />
<br />
Submitted by:	Brian Minchau<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/12/04<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Transform Thread sample. Submitted by  Richard Cao.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/04<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>2003/12/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/04<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Upgrading to xml-commons-external-1.2.01 release, and moving to new naming
convention for xml-commons source file.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java 
xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java ElemWithParam.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer NodeSorter.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Upgrading to version 2.6.0 of Xerces-Java.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/12<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/12<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Created a named constant for "META-INF/services" string.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>rameshm@apache.org<b>
<i> on </i>
</b>2003/12/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/12/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Fixed a bug I injected recently - missing slash between 'META-INF/services' and service name.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/01/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/01/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating the copyright dates to reflect recent modifications.<br />
<br />
</li>

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

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

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

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes UnionPathIterator.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/02/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for Bugzilla Bug 26075.<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/11<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemParam.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/02/12<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Fix for Bugzilla Bug 26842.<br />
<br />
</li>

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

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java
xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "xalan-doc-cache-off" rather than
"xalan:doc-cache-off"<br />
<br />
</li>


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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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="yes".<br />
<br />
</li>

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

<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java 
ToHTMLStream.java ToStream.java ToXMLStream.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2004/02/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils PrefixResolverDefault.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2004/02/21<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Code cleaning and optimization for copy and copy-of.  Discussed with Henry Zongaro.<br />
<br />
</li>

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

Use Ant's filtering capabilities to place appropriate "created-by" information
into the MANIFEST.MF file of the jar that's being built.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>jycli@apache.org<b>
<i> on </i>
</b>2004/02/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>aruny@apache.org<b>
<i> on </i>
</b>2004/02/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/24<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
Upgrading to version 2.6.2 of Xerces-Java.<br />
<br />
</li>

<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2004/02/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<br />
<b>
<i>Committer's log entry: </i>
</b>
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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.5.2</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/06/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan Version.java Version.src<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/06/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/06/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml overview.xml whatsnew.xml xsltc_usage.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Documentation patch to correct typos, contributed by Glen Mazza 
(glenmazza@yahoo.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/06/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml getstarted.xml history.xml index.xml samples.xml trax.xml usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Documentation update: Replaced all occurrences of TRaX with the properly
capitalized TrAX.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Changing firePseudoAttributes() to firePseudoElement() which
is for debugger tooling.  Now both the whole start of the element-tag
e.g.   &lt;abc attr1="val1" attr2="val2"
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/12<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/06/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for the general case of bugzilla 20685:
DTMAxisIteratorBase#cloneIterator() was not setting clones to be
non-restartable.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch contributed by Glen Mazza (glenmazza@yahoo.com):
Fixing a typo in the command line help.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan commandline.xml samples.xml trax.xml usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch contributed by Glen Mazza (glenmazza@yahoo.com) for bugzilla 20625:
Fixing some documentation typos.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java ToUnknownStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/06/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/06/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/06/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLErrorDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added code by Art Welsh to hande full errors, where multiple warning
stattments wll be output into the error document
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/06/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added code by Art Welsh to hande multiple result sets and Callable statements.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/06/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql QueryParameter.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/23<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/06/23<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Implement a "DTM migration" 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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/23<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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 "array" but use "length" 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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for problem in ExpandedNameTable (bugzilla 21087).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix problem in EXSLT align function (bugzilla 19890).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath NodeSet.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/06/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemIf.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/06/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncCurrent.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/07/02<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/07/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes UnionChildIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/07/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/07/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/07/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java ToHTMLStream.java ToStream.java 
ToTextStream.java ToXMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patches for bugzilla 20841 and 21039.
PR: 20841, 21039
Submitted by:	Brian Minchau
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/07/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/07/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/07/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Reduce the indentation level of end-element tags by 1 level.
PR: bugzilla 21449
Submitted by:	Brian Minchau
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/07/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java WriterToUTF8.java WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/07/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for bugzilla 17630 (method keys for extension functions are not unique).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/07/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2003/07/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fixed NPE bug with inline variables
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/07/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/07/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java KEYS<br />
<b>
<i>Committer's log entry: </i>
</b>
Adding my public key.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/07/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/07/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/07/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ElemDesc.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/08/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<br />
<b>
<i>Committer's log entry: </i>
</b>
Backing out SAX 2.0.1 xml-apis to the level used in XalanJ 2.5.1.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/08/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 21893
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/08/12<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/08/12<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Utils.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/08/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>

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 "i+1" that it had always returned, 
which was a bit confusing. 
This routine always processed 2 input characters and always returned "i+1" so why bother?  

There was no error in returning "i+1" because the situation in which this routine was called were always in a loop:
for (int i=start; i &lt; end; i++) { ... }
so "i" 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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/08/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<br />
<b>
<i>Committer's log entry: </i>
</b>


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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/08/14<br />
<b>
<i>Modified: </i>
</b> 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 />
 <b>
<i>Committer's log entry: </i>
</b>
Applying Igor Malinin's (igor@widespace.ee) patch for more convenient	(centralized)

classloading.  See bugzilla #16675.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/08/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan overview.xml trax.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
A few minor doc updates.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/08/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix a typepo in ExtensionHandlerGeneral.java. It should check for null
instead of nonnull.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/08/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor XSLTElementProcessor.java xml-xalan/java/src/org/apache/xalan/templates 
Stylesheet.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java SecuritySupport.java SecuritySupport12.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils SecuritySupport.java SecuritySupport12.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/08/27<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/08/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/09/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/09/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 22777
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/09/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 21478	
Submitted by:	Christine Li
Reviewed by:	Brian Minchau

Added message key ER_FUNCTION_NOT_SUPPORTED that
maps to message (in English) "Function not supported!"
so that an error message comes out rather than a crash.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 22808
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/09/09<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer SerializerSwitcher.java 
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Apply the patch from Richard Cao (richcao@ca.ibm.com) for bug 13082.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating PrintTraceListener to print information about the recently
added ExtensionEvents.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/Trace Trace.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan samples.xml usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Documenting the addition of the ExtensionEvent trace event, as well as
the Trace sample changes.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/09/18<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/09/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/09/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Applying patch from Joanne Tong (joannet@ca.ibm.com) for Bugzilla bug report
23200.  The XPath syntax for a number is "Digits ('.' Digits?)? | '.' Digits".
The XPath parser accepted anything accepted by the Java double literal syntax,
including values using "E" exponential notation.  The fix was to guard against
any value using exponential notation.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/09/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources entities.ent xml-xalan/java/xdocs/sources/xalan downloads.xml faq.xml 
history.xml index.xml resources.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/06<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/10/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java SecuritySupport.java SecuritySupport12.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/10/15<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Fix for bugzilla 22342.
Rename variables with name "enum". In JDK 1.5, enum is a keyword.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Apply the patch for bugzilla 14149 from Joanne Tong (joannet@ca.ibm.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 " new ToStream() ".  The applied patch fixes that.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 7408. Submitrd by  Richard Cao.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java xml-xalan/java/src/org/apache/xalan/templates DecimalFormatProperties.java KeyDeclaration.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 5972. Submitrd by  Richard Cao.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 788. Submitted by  Richard Cao.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java KEYS<br />
<b>
<i>Committer's log entry: </i>
</b>
Added the public key of "Brian James Minchau" to the xml-xalan/java/KEYS file.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>igorh@apache.org<b>
<i> on </i>
</b>2003/10/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates TemplateList.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for Bugzilla Bug 789. Submitted by  Richard Cao.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/10/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/17<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/10/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 7205
Submitted by:	Richard Cao
Reviewed by:	Brian Minchau/Henry Zongaro
Do NOT  have ToXMLSAXHandler always mirror namespaces given via
startPrefixMapping("prefix1", "uri1")
 as attribute values of the form xmlns:prefix1="uri1"
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix to make SerializerFactory return a serializer even if the only
property specified is method="xml"
PR: bugzilla 22025
Submitted by:	Brian Minchau
Reviewed by:	John Meyer (bug originator)
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/23<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xml/serializer Encodings.properties ToTextStream.java
java/src/org/apache/xml/res XMLErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
patch to emit emit error message for method="text" when output character not valid in the 
output encoding.   
PR: bug 795
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/23<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xalan/templates ElemLiteralResult.java
ElemUse.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Error message for testcase attribseterr07
PR: bug 782
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/23<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xml/serializer CharInfo.java
ToHTMLStream.java ToXMLStream.java ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PR: bug 24025
Submitted by:		 Brian Minchau
Reviewed by:		 Henry Zongaro
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/23<br />
<b>
<i>Modified: </i>
</b> java/src/org/apache/xml/utils QName.java
java/src/org/apache/xml/res XMLErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/10/23<br />
<b>
<i>Modified: </i>
</b> ava/src/org/apache/xalan/lib PipeDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
PipeDocument was not calling out.close() when done with the 
FileOutputStream "out".
PR: bug 24013
Submitted by:		 Pierre Chardin (bug reporter)
Reviewed by:		 Brian Minchau
<br />
<br />
</li>
</ul>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.5.1</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Applying Sarah McNamara's (mcnamara@ca.ibm.com) patches to update
version numbers in XalanJ.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/10<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Sarah McNamara's (mcnamara@ca.ibm.co) documentation patch.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/16<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
New FAQ from Christine Li (jycli@ca.ibm.com) for using Xalan in Tomcat
with JDK 1.4.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2003/04/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2003/04/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/04/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Change in comments only. Deleted old commented out (and incorrect)
double-checked locking code.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Duplicate trace was event being issued.  One from ElemElement and then 
from its parent class: ElemUse.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/04/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java Extensions.java xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Performance fix for double buffering.  Don't use WriterToUTF8Buffered if the 
writer class is "BufferedServletOutputStream".

PR: bugzilla 19474
Submitted by: Brian Minchau
Reviewed by: Ilene Seelemann
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/05/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/09<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Title of FAQ for Xerces version read, "Which version of Xerces-J 2.4.0 should I
use?" answering it's own question.  Fixed that to make for a more suspenseful
read.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/05/13<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java OutputPropertiesFactory.java SerializerFactory.java Utils.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/05/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Adding missing trace events for the func:result element.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/05/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/05/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix a compatibility problem when using the old "http://xml.apache.org/xslt"
namespace with extension functions in org.apache.xalan.xslt.Extensions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/05/26<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/05/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<br />
<b>
<i>Committer's log entry: </i>
</b>
Update to the SQL extension sample from Christine Li (jycli@ca.ibm.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/05/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/05/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java xml-xalan/java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/05/28<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils BoolStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java SerializerBase.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>minchau@apache.org<b>
<i> on </i>
</b>2003/05/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Support for a ToHTMLSAXHandler serializer to be reset() and re-used.
Submitted by: Brian Minchau
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>grchiu@apache.org<b>
<i> on </i>
</b>2003/05/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.5.0</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/02/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Update to latest version of xml-apis.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/27<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Small improvement to DescendantIterator and TypedDescendantIterator.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/02/28<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
More sample and documentation updates from Christine Li (jycli@ca.ibm.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/28<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/02/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Correct an error. The DTMDefaultBase.getPreviousSibling() interface
returns a node handle instead of a node identity.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/02/28<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Patches for samples from Christine Li (jycli@ca.ibm.com)
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Propagate the change from head branch to XSLTC_DTM.
Add a new getTransformer() interface to TrAXFilter.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add a new getTransformer() interface to TrAXFilter.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/03<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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 "id". 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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/06<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Improvement for xsl:number. Introduce an optimized version of
getExpandedTypeID() in SAX2DTM2.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/07<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Small improvement in FastStringBuffer.sendSAXCharacters() when the whole
piece of text is in one chunk.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Small improvement in SAX2DTM2.getStringValueX() and dispatchCharacterEvents()
by saving one local variable.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/14<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2003/03/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Oops! Old bug, just noticed -- we forgot to override RootTraverser's typed first().
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/21<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Introduce a copyAttribute() method in SAXImpl to speed up
attribute copying.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLTC_DTM performance work
Improvement in DTM building. Make the code more efficient
in a few expensive interfaces.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/03/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/03/25<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Committing Christine Li's (jycli@ca.ibm.com) patch for bugzilla #18210.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.ref.dom2dtm.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMAxisIterator.java DTMManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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 "Stream" or whether it is a "SAX" 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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils DOMHelper.java FastStringBuffer.java IntStack.java SuballocatedIntVector.java XMLStringDefault.java XMLStringFactoryDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.utils.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions XSLProcessorContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.extensions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorOutputElem.java TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.processor.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.templates.
Replace ResultTreeHandler with SerializationHandler.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/trace GenerateEvent.java PrintTraceListener.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.trace.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.transformer for the new serializer.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml xsltc_todo.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.MF<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating to Xerces-J 2.4.0.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.MF<br />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Update spec version for XSLTC in MANIFEST.MF
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/02<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/02<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head
Add new sample files.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/02<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Merging XSLTC_DTM and common serializer to the head

Update in java/xdocs.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes FilterExprWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Commit patch for bug 12797 from Arun Yadav (arun.yadav@sun.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Added a new "fulldist" 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
"fulldist" target, but not under the ordinary "dist" target.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Replace Vector.add() by Vector.addElement() because the first method
is not in JDK 1.1.8.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/CompiledApplet TransformApplet.java README.applet<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/06<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2003/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Docs update
Document the new "use-classpath" attribute
which is supported in the XSLTC TrAX API.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/CompiledServlet README.servlet TransformServlet.java xml-xalan/java/samples/CompiledBrazil README.brazil<br />
<b>
<i>Committer's log entry: </i>
</b>
Sample updates from Christine Li (jycli@ca.ibm.com).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2003/04/08<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/serializer HTMLEntities.res XMLEntities.res<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2003/04/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.4.1</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fixed Class loader Problem. Default Connection now uses context Classloader
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates Constants.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add comments for the new namespace (http://xml.apache.org/xalan/redirect).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add comments for the new namespace (http://xml.apache.org/xalan/PipeDocument).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add comments for the new namespace (http://xml.apache.org/xalan/sql).
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes SelfIteratorNoPredicate.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 11073. Fix an extension namespace problem.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java KEYS<br />
<b>
<i>Committer's log entry: </i>
</b>
I had to get a new key after a hard drive crash.  This time, I backed it up!
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Throw an IllegalArgumentException in the setErrorListener() interface
if the error listener is null.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions MethodResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 9731. Convert an empty NodeList to a null Node.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 12379. Transformer.setOutputProperties() should throw
IllegalArgumentException if the property is invalid.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 12127. Throw a TransformerException if a prefix cannot
be resolved to a URI insteading of throwing a NullPointerException.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Correct a problem in the previous patch.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Javadoc correction.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Make the tokenize function conformed with the EXSLT spec. Reuse
the Document object to reduce memory usage.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java ExsltMath.java ExsltStrings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Extension work. A few Javadoc correction. Fix problems in math:max and math:min.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XRTreeFragSelectWrapper.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 6181. Change the execute() interface to return the result
of executing the select expression.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating to latest xercesImpl.jar, which contains org.w3c.dom.xpath interfaces.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/20<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Prototype implementation of DOM L3 XPath Specification.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #6927.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml xsltc_usage.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
compile -n option changed so inlining is now the default
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltDynamic.java ExsltMath.java ExsltSets.java ExsltStrings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath DOMHelper.java<br />
<b>
<i>Committer's log entry: </i>
</b>
The isNodeTheSame(node1, node2) interface should return true if node1==node2.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla #10384.  There's still a problem with attribseterr08 which
is covered in bugzilla #3969.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/dom3/xpath XPathEvaluator.java XPathException.java XPathExpression.java XPathNamespace.java XPathNSResolver.java XPathResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating import statements to use the interfaces in the temporary org.apache.xalan.dom3.xpath package.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/24<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Added some new error message strings.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla #4344.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/09/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/functions FunctionMultiArgs.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 7161. Add a public accessor to return the argument array.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 10414. Provide a getErrorListener() interface in the ExpressionContext.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/samples/AppletXMLtoHTML client.html<br />
<b>
<i>Committer's log entry: </i>
</b>
For bugzilla 13059. Fix typo width"0" to width="0".
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Messages for new options in the Process command line.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/09/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2002/10/01<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Added and fixed up some additional translation guidelines.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates Constants.java ElemTemplateElement.java output_html.properties output_text.properties output_xml.properties OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Use one namespace for all extensions (Bugzilla 9959)
Use the new namespace uri "http://xml.apache.org/xalan" instead of
"http://xml.apache.org/xslt" for xsl:output extension attributes.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java XSLTElementDef.java XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Use one namespace for all extensions (Bugzilla 9959)
Use the new namespace uri "http://xml.apache.org/xalan" for
the component and script extension elements. We maintain
backward compatibility so that using the old uri
"http://xml.apache.org/xslt" still works.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/03<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaPackage.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Minor Javadoc update to use the new namespace uri.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/03<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Update the extension samples to use the new namespace.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Minor fix for math:max().
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 13106. Visit the XPath expressions created for match patterns.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/07<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils ObjectVector.java xml-xalan/java/src/org/apache/xpath/compiler OpMapVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla #5046.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler OpMap.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Cleaning up import statements.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/07<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating to XercesJ 2.2.0.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/20<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #13754.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For bugzilla 13711
Fix the conditions for validating the child elements of func:function.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For bugzilla 7357
Fix problems in exception handling for extension elements.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/23<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla #13863.

Moved setting the namespaceContext from the TransformerImpl constructor to
the transform method.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPath.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Move a hardcoded string into the properties file.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/25<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For bugzilla 13944. Check for InvocationTargetException in Method.invoke().
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 13303.
Fix Memory leak in XPathContext.popRTFContext().
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Backing out patch for bugzilla #13863.  It causes a bunch of failures in 
the trax.sax flavour.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan extensions.xml extensionslib.xml samples.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs xml-site-style.tar.gz xml-xalan/java/xdocs/sources/xalan faq.xml resources.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bugzilla 14022
Commit Gordon Chiu's update to the FAQ.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Build org.w3c.xpath.dom interfaces into xalan.jar.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch from Gordon Chiu.  Replace stack.clear() calls with stack.removeAllElements()
to be compatible with JDK1.1.8.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>2002/10/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Support compiling under JDK 1.2 - 1.4.  Also check for compatability with target JDK 1.1.x.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/10/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/domapi XPathNamespaceImpl.java XPathResultImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Somewhat rough implementation of XPathNamespace.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>2002/10/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin ant.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Upgrade to Ant 1.5.1.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/10/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltStrings.java xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.4.0</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToText.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Updated Xalan version to 2.3.2 and Xerces to 2.0.1.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Added classpath information pertaining to xercesImpl.jar and xml-apis.jar.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources entities.ent<br />
<b>
<i>Committer's log entry: </i>
</b>
Added pointer to xml-apis.jar MANIFEST for version information.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_history.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Updates for next version (release notes to history)
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan index.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Added support for EXSLT extensions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Performance improvement. Instead of looping through the ExtendedType objects, use a hashtable and go directly to the correct object.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Bugzilla 6356: Add support for "windows-1251" and use a properties file to store all the supported encodings. Patch from Sergey Ushakov.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add basic DOM nodetypes to our hashtable of extended type IDs
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/05/12<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Use PropertyResourceBundle instead of ListResourceBundle, and put error
messages into property files, for easier localization.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/05/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes WalkerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/05/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPath.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Bugzilla 7157. Updated Javadoc comment to note that the XPath.installFunction() method currently does not
use the name parameter.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/13<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/13<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Add a null constructor for resource files and fix XSLMessages to use the correct error resource file
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/META-INF/services org.apache.xml.dtm.DTMManager xml-xalan/java/src/org/apache/xml/dtm DTMManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Add meta file for DTMManager factory and make sure it is read as UTF-8
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XNodeSetForDOM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
m_last was not being set correctly. See comments.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Bugzilla 7118: Variable set via RTF may have
local variables within it; need to push a new
context.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/05/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix for NullPointerException in SQL extension stuff. Just check for a NULL iterator...
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Bugzilla 8324. This should have been checked into the main branch.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/05/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
section on problems was way out of date. Also incorporated material from JAXP 1.2 release notes
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/05/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
updated command option usuage. Some options have been added.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>2002/05/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Updated first three sections.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Bugzilla 7118 REVERT -- This fix was provoking bug 9195, which
is more severe.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Obvious mistake, apparently in a corner our regression tests missed.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/05/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Root node is not always 0 in an RTFDTM
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/05/22<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Fixed hard coded string for timing diagnostics.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>2002/05/31<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Prevent an external DTD from being inlined when using the built-in
identity transform.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorFuncResult.java ProcessorFunction.java ProcessorOutputElem.java ProcessorResultDocument.java XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>
XSLT 2.0: stylesheet function, result-document, and
principal-result-document.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/06/04<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
Xalan3 branch: Check in temporary version of Xerces. This predates
the most recent changes to Xerces, and supports the older "light
weight" 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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/05<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Core EXSLT dates-and-times functions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/06<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java XUnresolvedVariable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/07<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Integrated some removal of hard-coded error messages.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/08<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Moved hard coded strings for StackGuard error message to properties file.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix bug for optionV.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/10<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Use ContextClassLoader - Use full Encoding file package name - Merge new patch from Sergey Ushakov
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/10<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/10<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_constraints.xml xsltc_history.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Moved 2.3.2 core and xsltc updates into the history files.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xercesImpl.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
xercesImpl.jar from Xerces-J-bin.2.0.1.zip (for upcoming Xalan-J 2.4.D1)
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.MF<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan builds.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Brief documentation about developer standards and official build processes
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources xalan-jlocal.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Add builds.xml; perhaps should also be added to xalan-jsite.xml as well
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>2002/06/11<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java xml-xalan/java/src/org/apache/xpath/compiler Lexer.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan readme.xml xsltc_constraints.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
updates for developer's release.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Patches for developer's release from Sarah McNamara.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Updated version # for developer's release.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Update .jar file sizes for 2.4.D1 release
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan resources.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Remove extraneous slash char on path
Submitted by: mcnamara@ca.ibm.com
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/13<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Add pointers to info on new EXSLT extensions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Changed Vector.get(int) to Vector.elementAt(int) to maintain
compability with Java 1.1.8.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/17<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Added RTFIterator (extends OneStepIteratorForward);
created fromRTFFragment so EXSLT object-type function
can identify an RTF with certainty.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>2002/06/18<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Removed duplicate implementation of several EXSLT "Set"
functions.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin jtidy.LICENSE.txt jtidy.README.txt Tidy.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
adding Jtidy for use with test harness to parse html
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils Hashtree2Node.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Add doc about calling checkEnvironment as a stylesheet extension
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>tmiller@apache.org<b>
<i> on </i>
</b>2002/06/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>
bug fix for bugzilla 9572, fix by Pavani.Mukthipudi@sun.com
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>2002/06/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java build.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Update docs.class.path to include XSLTC-dependent jars
Submitted by:	Henri Gomez hgomez@slib.fr
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Add error resources pulled out from code
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/26<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Add error resources pulled out from code
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java OpMap.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Pull out hard coded messages
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/06/28<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Fix typo.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/06/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
fix typo in SmartTransormerFactoryImpl pointed out by Tobias McNulty
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/07/01<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "", 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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/07/08<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java XSLTAttributeDef.java xml-xalan/java/src/org/apache/xml/utils DefaultErrorHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
resource error messages
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/07/10<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/07/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils XMLChar.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>2002/07/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>
bugzilla 9575: Fix AncestorIterator counting root node twice. Patch from Henry Zongaro.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/07/10<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>
&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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/22<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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 "assert" to "assertion".
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/24<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Remaining updates for Bugzilla#5013.  

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

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

xsl:output cdata-section-elements attribute was not handled correctly.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2002/07/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes SingletonIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
file SingletonIterator.java was initially added on branch XSLTC_DTM.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java ExsltMath.java ExsltSets.java Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Committed patch for bugzilla#10323 (incorrect Javadoc 
in the extension code.)
Submitted by Morris Kwan (mkwan@ca.ibm.com)
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/07/29<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla #9146

NullPointerException when attempting to build a stylesheet from 
a DOM Element instead of a Document node.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2002/07/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2002/07/30<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>amiro@apache.org<b>
<i> on </i>
</b>2002/08/02<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
changed verbage to agree with new support of constructors and nonstatic external java functions
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>zongaro@apache.org<b>
<i> on </i>
</b>2002/08/07<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/09<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates ElemValueOf.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/08/14<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src MANIFEST.MF<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bug#6547. Remove reference to old jar files.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/15<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/templates FuncKey.java xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bug: "The key() function throws an exception when called in the context of a 
local variable." reported on xalan-dev.

Modified FuncKey.execute to use getDocumentRoot instead of getDocument.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/08/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xpath/axes BasicTestIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For Bug#11123. Fix infinite loop in union expression.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/08/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java<br />
<b>
<i>Committer's log entry: </i>
</b>
For bug#7776. Fix argument passing problem for Java extension.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mkwan@apache.org<b>
<i> on </i>
</b>2002/08/16<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br />
<b>
<i>Committer's log entry: </i>
</b>
See bug#10945. Test if a node is a DTMNodeProxy before casting.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/19<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
<b>
<i>Committer's log entry: </i>
</b>
Patch for bugzilla#11834.  Replaced calls to DTM.getDocument with get 
DTM.getDocumentRoot.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>2002/08/21<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/bin xml-apis.jar<br />
<b>
<i>Committer's log entry: </i>
</b>
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>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan builds.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
Small updates to the build documentation.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>
Updating version numbers to 2.4.0 for new release.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> 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 />
<b>
<i>Committer's log entry: </i>
</b>
Updating version numbers to 2.4.0 for new release.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java commits.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
New commits.xml for upcoming Xalan 2.4.0 release.
<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>ilene@apache.org<b>
<i> on </i>
</b>2002/08/27<br />
<b>
<i>Modified: </i>
</b> xml-xalan/java/xdocs/sources/xalan history.xml xsltc_history.xml<br />
<b>
<i>Committer's log entry: </i>
</b>
New history.xml, xsltc_history.xml for upcoming Xalan 2.4.0 release.
<br />
<br />
</li>
</ul>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.3.1</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>Well, _that_ was dumb... Forgot one "don't dereference if null" test.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>Just comment<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>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
 "Differences between explicit and implicit parsing for docs with DTDs?"<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/04/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/04/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils IntStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 6854: Return the stack exception, as documented.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/12/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/19/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/19/2002<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref TestDTMNodes.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/20/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/21/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Properly catch exception from CharInfo constructor, and try again.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/21/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "x:/x" or "/x" then "file:///" is added to 
it.
 I don't see how this can screw anything up... but I'm sure it will.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/21/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>Merge from redundent expression elemination branch.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/21/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>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 />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xalan/transformer KeyWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath DOMHelper.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions ExtensionsTable.java
 MethodResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib package.html<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java<br />
<b>
<i>Committer's log entry: </i>
</b>Preliminary set of EXSLT extension implementations.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added Apache license.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/23/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/trace TraceListenerEx2.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/24/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Set the DEVELOPMENT number to 1, in prep for a developer's release.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/24/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemForEach.java<br />
<b>
<i>Committer's log entry: </i>
</b>Make sure the current element is nulled out if debug mode so that
 TransformerImpl#getElementCallstack works correctly.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/24/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added fire trace events, which seemed to be missing.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/24/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added getElementCallstack() and getTemplateCallstack() methods, for support
 of xsl debuggers.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/24/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Changed the release number to 4, since new functionality has been added.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/trace TraceListenerEx2.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix JavaDoc comment.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/trace PrintTraceListener.java<br />
<b>
<i>Committer's log entry: </i>
</b>Handle TraceListenerEx2, even though we don't do anything with the extra 
methods.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem with the SAXSourceLocator not getting the line number info.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SAXSourceLocator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add a constructor that takes a SourceLocator.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added getOwnerXSLTemplate method, a convenience function.
 Implemented getLocalName().<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor StylesheetHandler.java
 ProcessorTemplateElem.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XNull.java<br />
<b>
<i>Committer's log entry: </i>
</b>Change derivation to XNodeSet.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathProcessorException.java
 XPathException.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XObject.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add constructor that lets us set the owning ExpressionNode.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>For getCurrentElement, add some protection for access when there is no
 current element.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemVariable.java
 ElemWithParam.java<br />
<b>
<i>Committer's log entry: </i>
</b>Pass the template to the XRTreeFrag constructor, so we can establish
 better context.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathException.java<br />
<b>
<i>Committer's log entry: </i>
</b>Set the "StylesheetNode" to the ElemTemplateElement instead of the
 DOM backpointer.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/02/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Wrap runtime exception in TransformerException, so we'll get line number info
 when NPE and the like.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/02/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/04/2002<br />
<b>
<i>Added: </i>
</b>java/src/org/w3c/dom/xpath COPYRIGHT.html
 XPathEvaluator.java XPathException.java
 XPathExpression.java XPathNSResolver.java
 XPathNamespace.java XPathResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add Document Object Model (DOM) Level 3 XPath Specification.
 (Temp until it's added to xml-commons.)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/05/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>On entry, set the document base URI in the DTM. Fixes bug reported
 by Christine.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/09/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/09/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>Clean-up of dumpDTM method, some code clarity changes.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/09/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/09/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>(nitpicking)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>pauldick@apache.org<b>
<i> on </i>
</b>04/10/2002<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Moved into Test directory<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/10/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>Cleaner disabling of experimental code. Sorry 'bout that.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/10/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/10/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/operations Variable.java
 java/src/org/apache/xpath/patterns NodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/10/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemForEach.java TemplateList.java
 VarNameCollector.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm XSequence.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm XSequence.java
 java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm Tag: Xalan3 XSequence.java<br />
<b>
<i>Committer's log entry: </i>
</b>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/12/2002<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 DTM_XSequence.java XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>santiagopg@apache.org<b>
<i> on </i>
</b>04/15/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xsltc Tag:
 jaxp-ri-1_2_0-fcs-branch DOM.java<br />
<b>
<i>Committer's log entry: </i>
</b>New implementation of xsl:element<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>Decided I _was_ overoptimizing.

 Saving memory in tne non-error case trumps saving it in the error case.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/17/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
 SAXImpl.java XSLTCDTMManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm Tag: XSLTC_DTM
 DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Make getNumberOfNodes() public<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/18/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/18/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/18/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Misc fixes<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/22/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 4546 -- thanks to Wolfram Eisert for tracking this down and
 proposing the patch.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/29/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/29/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Merge ExtendedType changes from main branch<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/02/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 ExpandedNameTable.java<br />
<b>
<i>Committer's log entry: </i>
</b>Oops. Typo.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/02/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Make sure current version checked in before I start experimenting with 
alternatives.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/02/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>It helps if we actually remember to store the schema info...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/03/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
 ExpandedNameTable.java
 java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 XNI2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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
 "sparse vector".

 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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/06/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>Remove the duplicated ;;

 ( which broke the JDK1.4 compilation which in turn broke all the gump
 deps ).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/06/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes PredicatedNodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 7159 -- Just an access-permission change, for improved
 toolability.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>05/09/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToText.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>


<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.3 and 2.3.1</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>01/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed second connection problem<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>01/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update for new DTM Model<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>01/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql DTMDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update for new DTM Model<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>01/17/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
 DTMDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Removed Debug<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/18/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/18/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>&lt;blush&gt;Wrong side of the fencepost...&lt;/blush&gt;<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/23/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "tail-pruning" 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 "working set" 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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>01/25/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>01/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/res XPATHErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>bug 4762: Fixed the duplicate error message in XPATH.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4054: Retain previously set output properties when adding new ones.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>01/28/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>01/30/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib NodeInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>Changed "system id" to "public identifier" in javadoc
 comments for publicId() methods.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/30/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>01/30/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates StylesheetComposed.java
 StylesheetRoot.java TemplateList.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/31/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>01/31/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/01/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 6182. Darned fence posts; always either too many or not enough... 
&lt;grin/&gt;<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/01/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java
 XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/04/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/04/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/04/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/04/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 5346: Oops. Forgot to take out a debugging printout.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/05/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/05/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 5346: One more (last, I hope) edge case.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/05/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 5346: Gaaah. This regressions was just plain foolish flailing. "Less 
haste, more speed."<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/05/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/06/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>02/06/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan Version.java
 java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Whoops! Never updated release number to 2.3 in these version files!<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>02/06/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>updated version number to 2.3<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/07/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath SourceTreeManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 6304: Remove print stacktrace<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/08/2002<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>02/12/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>02/14/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update various .jar sizes for recent builds and 2.3.0<br />
<br />
</li>
</ul>
   
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2</h3>
<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:dev@xalan.apache.org">Xalan Development Mailing List</a>.</p>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>11/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>updated version number to 2.2.D14<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>11/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>updated version number to 2.2.D14<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/03/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 5242: Special-case initializing iteration from Document node -- 
one-liner wasn't safe.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>tmiller@apache.org<b>
<i> on </i>
</b>12/04/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/xsltc ProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>new class to version xsltc software<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Removed the "magic" 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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>Efficiency improvement to the new DTM "overflow addressing" scheme.
 In some tests, this one alteration shaved about 30% off the runtime.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath CachedXPathAPI.java
 XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils AttList.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>Finally following up on an old hunch, I switched from /% addressing
 to shift-and-mask. Big improvement!<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 DOM2DTMdefaultNamespaceDeclarationNode.java<br />
<b>
<i>Committer's log entry: </i>
</b>A few more subtle performance tweaks, and an actual bug.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>12/20/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/utils ListingErrorHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Alternate ErrorHandler/ErrorListener implementation that allows
 configuration and prints errors out similarly to javac<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>12/21/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils AttList.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 5496; previously unimplemented functions.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>01/03/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils DOMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>[Bug 5528] DOMBuilder mixed DOM Level 1 and 2<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>01/11/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>updated release number to 2.2.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>01/11/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>updated release number to 2.2.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>01/13/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>01/14/2002<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>
   
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D14</h3>
<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 "User" 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/">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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan Version.java<br />
<b>
<i>Committer's log entry: </i>
</b>D13 internal version number update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>D13 internal version number update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeList.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla4842, secondary complaint (glitch in getChildren)... &lt;blush/&gt;<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla4842: Expand the proxy layer to support more of the DOM API.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Namespace decls are themselves not namespace-aware, in the
 Namespaces 1.0 REC. Use the qname.Grumble.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>"Tupograflica eror". Sorry 'bout that!<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/26/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Another fairly large change in the DTM architexture (sic)....

 We've changed DTM's internal behavior so it can now assign
 more than one "DTM ID" 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 "same result is no new bug"
 for now.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref
 DTMDefaultBaseTraversers.java<br />
<b>
<i>Committer's log entry: </i>
</b>Found the glitch causing the axes108 bug -- exptype/type.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm
 DOM2DTMdefaultNamespaceDeclarationNode.java<br />
<b>
<i>Committer's log entry: </i>
</b>Moved default namespace declaration node object out of its "inner
 class" status, since I think I want to perform an instanceof test on it.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/29/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>java/src/org/apache/xpath CachedXPathAPI.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor tweaks<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>11/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Redirect.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D12 and 2.2.D13</h3>
<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 "User" 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/">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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla3995: Removed "final" keywords. That doesn't by itself
 provide the requested enhancement, but it makes prototyping one
 a bit easier.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 3384. See comments in the toDouble method; I suspect this may be 
wasted micro-optimization.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Is " 12 34 . 56 78 " really considered acceptable?
 Or should whitespace within the value be treated as NAN?<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Updated build number to 2.2.D12.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>Updated build number to 2.2.D12.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for Bugzilla1133, LRE21: xsl:extension-element-prefixes should be 
considered an exclusion<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for Bugzilla 3464. Exposes errors in conformance tests namespace93 and 94.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>10/16/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize CharInfo.java
 HTMLEntities.res XMLEntities.res<br />
<b>
<i>Committer's log entry: </i>
</b>Fix Bugzilla#4000, force reading of *Entites.res to be in UTF-8; added 
comments
 PR: Bugzilla#4000<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "more correct:" 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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>Gaaah. Typo.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>10/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan Version.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan Version.java<br />
<b>
<i>Committer's log entry: </i>
</b>Be careful with parentheses when using ?: operator.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineSAXFilterTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan Version.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemCallTemplate.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/xml/sax/helpers ParserAdapter.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>10/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>In Xerces2, SAXParser no longer seems to inherit from
 XMLReader; explicit casts needed to work around that.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>10/23/2001<br />
<b>
<i>Removed: </i>
</b>java/src/javax/xml/parsers SAXParserFactory.java
 SAXParser.java ParserConfigurationException.java
 package.html FactoryFinder.java
 FactoryConfigurationError.java
 DocumentBuilderFactory.java DocumentBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>Remove javax.xml.parsers package from xalan sources since we no longer ship 
with these files<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>Microsoft VJ++ workaround. Should never arise in any reasonably
 standards-compliant Java environment, but VJ++ isn't...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
<b>
<i>Committer's log entry: </i>
</b>Additional "big scary" docs for Microsoft VJ++ workaround.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>10/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added fix for bug reported by Myriam for match="//x/a" patterns. On the
 second "/" on "//", the parser wasn't swallowing the token, which caused
 the "x" 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 "//" at the head of a match pattern is
 pretty useless, "x/a" being equivelent.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>10/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLTElementDef.java<br />
<b>
<i>Committer's log entry: </i>
</b>Improved safety net: When running with Xerces2, the "uri" field may be null.
 (Also reordered tests to encourage optimization of code.)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/31/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add command-line switches for the options introduced at same time as DTM, to 
make testing those features easier.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor StylesheetPIHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4575: Add the EOL character to the list of token delimiters.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>11/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Use appropriate context class loader as done in JAXP's FactoryFinder;
 Added various new jars; added checkAntVersion()<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize HTMLEntities.res<br />
<b>
<i>Committer's log entry: </i>
</b>Commented out mainly greek entities that Netscape seems not to handle.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize Encodings.java
 SerializerToHTML.java SerializerToText.java
 SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>Don't set the ErrorHandler if it is already set.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>11/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor fix to JavaDoc for setRecursionLimit.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/operations Operation.java
 UnaryOperation.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4679: Accessors for left and right operands<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Do not escape the percent '%' character anymore.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes LocPathIterator.java
 OneStepIterator.java PredicatedNodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 ClonerToResultTree.java ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4607; allow explicitly cloning namespace nodes rather than
 throwing exception.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>11/07/2001<br />
<b>
<i>Removed: </i>
</b>java/src/META-INF/services
 javax.xml.parsers.SAXParserFactory
 javax.xml.parsers.DocumentBuilderFactory<br />
<b>
<i>Committer's log entry: </i>
</b>Remove services/javax.xml.parsers.* references; we assume parsers have their 
own<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>11/07/2001<br />
<b>
<i>Removed: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Use a condensed copy of xml-commons sources instead of individual sources;
 remove xalan-specific copies of commons files<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/08/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4735: We should at least report an error when we overflow DTM 
addressing...<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor ProcessorInclude.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4355: Make sure that when finding out if a stylesheet imports 
itself, we use the resolved href.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>11/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath NodeSetDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4344: discard attrs which don't have an element to belong to<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 4344: more efficient.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan Version.java<br />
<b>
<i>Committer's log entry: </i>
</b>D13 internal version number update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>11/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>D13 internal version number update<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D11</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>09/05/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>09/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor cleanup and updates in preparation for extension function;
 note SAX portion isn't complete yet<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>09/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update EnvironmentCheck service with SAX checking; better method organization;
 Add checkEnvironment to xalan: built-in Extensions class<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler Lexer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 2140: Catch index out of bounds exception<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 2130: Check for null data to avoid NPE<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 3421: Issue an error if namespace attribute is used with an empty string 
in xsl:element<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Backing out this change. Some conformance tests need to be updated first<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 3421: Issue an error if namespace
 attribute is used with an empty string in xsl:element<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>09/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>09/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/javax/xml/transform TransformerFactory.java
 java/src/org/apache/xml/dtm DTMManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>09/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPath.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix Bugzilla 2637: documentation updates for constructor functionality
 PR:2637
 Submitted by:gthb@dimon.is<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemUse.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 2548: Combine attribute sets with the same name but process them in order 
of precedence.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes UnionPathIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bug 3533: Check for null m_iterators before trying to use it.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer KeyRefIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 3618: Check cache before anything else when getting the next node in 
the iterator.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>morten@apache.org<b>
<i> on </i>
</b>09/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xsltc TransletException.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 2332: Implement getAttribute() method to return the values for 
incremental and optimize<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>09/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>Enable Attr.getOwnerElement()<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
<b>
<i>Committer's log entry: </i>
</b>Bugzilla 1803: Handle version attribute on a litteral element.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>09/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>release 2.2.D11<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>09/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>release 2.2.D11<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>Mark xsl:template as containing ordered elements. Fix for no error when 
xsl:param not first child of xsl:template<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemLiteralResult.java
 ElemTemplateElement.java Stylesheet.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>09/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath NodeSetDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Do not reorder or strip duplicate nodes when converting a DOM nodelist into a 
DTM nodelist<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/01/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java<br />
<b>
<i>Committer's log entry: </i>
</b>Catch for unwrappered StopException (apparently not all parsers generate
 a SAXException wrapper).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>10/01/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Creating the implied Namespace Node for xml:<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D10</h3>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">The SQL Extension library has been updated to work with DTM.</td>
</tr>
</table>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>Update version for 2.2.D9 build<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>08/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java SQLDocument.java
 XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/15o2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Use defined constant DTMManager.IDENT_DTM_NODE_BITS for shifting DTM nodes, 
not hard coded value.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem with resolving a relative URI from a processing instruction<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>Make sure base is not null before checking for its contents.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates FuncDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>Allow multiple iterations of xsl:with-param within an xsl:call-template or 
xsl:apply-template<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncCurrent.java<br />
<b>
<i>Committer's log entry: </i>
</b>Call new XPathContext#getCurrentNodeList. Fixes
 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/20/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Fix for problem reported by Mike Starr &lt;mike.starr@air2web.com&gt;,
 where the transformation hangs for "foo[2] | bang"
 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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>08/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Removed debug flag
 Submitted by:John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>08/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
 XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed Streaming Mode
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>08/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>added document registration and release events to the DTM interface
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath VariableStack.java
 java/src/org/apache/xpath/operations Variable.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XStringForChars.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>morten@apache.org<b>
<i> on </i>
</b>08/27/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/xsltc StripFilter.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToText.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by</i>
</b> mmidy@apache.org<b>
<i> on </i>
</b>08/29/2001<br />
<b>
<i>Modified: </i>
</b>
java/src/org/apache/xpath/compiler Lexer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for Bugzilla 2684 StringIndexOutOfBounds Exception. Check if we are at the end of the pattern string.<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D9</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D8<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D8<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer NodeSortKey.java<br />
<b>
<i>Committer's log entry: </i>
</b>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Just added some stuff to diagnose bugs for flavor th.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.

 This fixes a bug with match="chapter//footnote[1]" 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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler Lexer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Resize the m_patternMap if m_patternMapSize exceeds the bounds.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Getting all (almost all) error message strings into the resource bundle<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>Accidentally added. Now deleting.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler OpMap.java<br />
<b>
<i>Committer's log entry: </i>
</b>Throw real error instead of runtime error in getFirstPredicateOpPos
 for better error reporting.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes PredicatedNodeTest.java
 java/src/org/apache/xpath/compiler OpMap.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java SQLErrorDocument.java
 XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added the original pquery and streaming mode functionality
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/lib/sql DTMDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added DTM Document, a common impl between SQLDocument and SQLErrorDocument
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/30/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes DescendantIterator.java
 WalkerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix addresses http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=XalanJ2,
 and a whole class of related problems.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/31/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XNodeSet.java XObject.java
 java/src/org/apache/xpath/patterns StepPattern.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/31/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Add support for external scripts (ie, the src attribute on a script element)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/31/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathContext.java
 java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIteratorForward.java<br />
<b>
<i>Committer's log entry: </i>
</b>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="xalan:nodeset($stylesheets)"/&gt;...
 The DescendantIterator was enumerating all of the nodes in the RTF
 rather than just the one.)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/31/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Added Error Managment and javadocs
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/01/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/patterns StepPattern.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>08/01/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update after building Unit Test's
 Submitted by: John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/01/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for Bugzilla 2930. Fix from Alexander Rudnev. Handle namespaced elements.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/01/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/02/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>java/src/org/apache/xpath/objects XNodeSetForDOM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/03/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/03/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Cutover to NamespaceSupport2, q.v.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/03/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>Continuing code review.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/03/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>08/03/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/lib PipeDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>PipeDocument extension element (the pipeDocument method).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath NodeSet.java NodeSetDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm DTMAxisIterator.java
 java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
 DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>Provide method for DTMAxisIterator to get the current root node
 of the iteration.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XObject.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes OneStepIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>For the OneStepIterator(DTMAxisIterator iterator) constructor,
 initialize the node tests to DTMFilter.SHOW_ALL (duh).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XObject.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xpath/objects XObjectFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>Move create methods from XObject to XObjectFactory, in response
 to cyclic build problems encountered with javac 1.1.8.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Remove m_hasStarted variable and associated assertion.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>Don't create caches unless used (which I don't think they are, in Xalan).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
<b>
<i>Committer's log entry: </i>
</b>Made _maxAncestors not static, as this is
 not compatible with 1.1.8 (reported by
 Gary Peskin).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Performance improvement; avoid scanning the same list twice.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/06/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/07/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for bugzilla 1251. Make sure exceptions are thrown when we're on the main 
thread.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes AxesWalker.java
 WalkerFactory.java WalkingIteratorSorted.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "@*/foo" patterns
 ("@attr/foo" patterns still use WalkingIterator).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java
 TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/09/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Change version for xalan2.2.D9 build<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm DTMManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncGenerateId.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath NodeSetDTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Try to support getRoot. Fixes problem with TransformStateTest.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>08/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes WalkerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem with duplicate nodes produced from a walking iterator<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D8</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Code Update
 Submitted by:John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed DTM.NULL compile error<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TreeWalker2Result.java<br />
<b>
<i>Committer's log entry: </i>
</b>Redundant test removed, possibly redundant code flagged for %REVIEW%<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/20/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Project Update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/23/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Oops.Should have been checked in as part of the IncrementalSAXSource cutover. 
Sorry!<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>07/23/2001<br />
<b>
<i>Modified: </i>
</b>java build.xml
 java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java
 java/src/org/apache/xml/utils/synthetic JavaUtils.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "main" 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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize
 WriterToUTF8Buffered.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "multiply by three" trick.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer NodeSorter.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D8<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D8<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer NodeSortKey.java<br />
<b>
<i>Committer's log entry: </i>
</b>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Just added some stuff to diagnose bugs for flavor th.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.

 This fixes a bug with match="chapter//footnote[1]" 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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D7</h3>
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/03/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToHTML.java
 SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Made m_maxCharacter, accumDefaultEscape,
 accumDefaultEntity, and m_isRawStack
 protected by request from Johannes Farrenkopf
 and Frank Nestel.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncNormalizeSpace.java<br />
<b>
<i>Committer's log entry: </i>
</b>In executeCharsToContentHandler check first for
 DTM.NULL before trying to get the DTM.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix bug reported by "Carsten Ziegeler" &lt;cziegeler@sundn.de&gt;.
 Test for this is whitespace23.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SuballocatedByteVector.java
 SuballocatedIntVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>Synch SuballocatedByteVector with changed SuballocatedIntVector<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/05/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Make accumDefaultEntity and accumDefaultEscape non-final.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIterator.java
 java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for John G. for the SQL extension: handle return types of
 DTM and DTMAxisIterator.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/10/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xpath XPathContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem with descendant-or-self and from root pattern. When from root, 
descedant or self was not recognized.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>Modify distinct() extension so that it no longer relies on DOMHelper which is 
deprecated but uses ExpressionContext.toString().<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Added: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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 "property" is different from a "feature": 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="http://www.w3.org/1999/XSL/Transform"
 xmlns:nodeinfo="xalan://org.apache.xalan.lib.NodeInfo"
 version="1.0"&gt;

 &lt;xsl:template match="*"&gt;
 //node &lt;xsl:value-of select="name()"/&gt;
 //file &lt;xsl:value-of select="nodeinfo:systemId()"/&gt;
 //line &lt;xsl:value-of select="nodeinfo:lineNumber()"/&gt;
 //column &lt;xsl:value-of select="nodeinfo:columnNumber()"/&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("Selected source node '" + sourceNode.getNodeName()
 + "', at " + locator);<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler Compiler.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>Now implements DocumentFragment.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>Updated version to 2.2.0.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Updated version to 2.2.0.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java PooledConnection.java
 QueryParameter.java XConnection.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
 ObjectArray.java SQLDocument.java
 SQLErrorDocument.java<br />
<b>
<i>Removed: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>First round of changes to port DOM mode to DTM Mode
 Submitted by: John Gentilin mailto://johng@apache.org<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Check if locator property is set before trying to use locator fields<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/trace PrintTraceListener.java<br />
<b>
<i>Committer's log entry: </i>
</b>Don't print locator message if locator is null<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>In startDocument, run m_contentHandler.startDocument before you start the 
thread.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Call wait for initial events before the the transform is started.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>Allow co_yield to be called after the parse has finished.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
 SQLErrorDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added setProperty and getSourceLocatorFor empty methods.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>07/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions
 XSLProcessorContext.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem reported by jason heddings &lt;Jason.Heddings@Sun.COM&gt;.

 "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."<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Project Update
 Submitted by: John Gentilin mailto://johng@apache.org<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Project Update
 Submitted by: John gentilin mailto://johng@apache.org<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixup from previous check-in, defined new
 functions.
 Submitted by: John Gentilin mailto://johng@apache.org<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Project Update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>reduced Attribute's for testing<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>07/16/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor hack to catch an attribute value being null.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/17/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>07/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
<b>
<i>Committer's log entry: </i>
</b>OOps! Back out this last change. Old code on my machine!!!<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>07/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed a few bugs, almost there
 Submitted by: John Gentilin mailto://johng@apache.org<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineManager.java
 CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xml/dtm/ref IncrementalSAXSource.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "which file do you want to parse" and "do you want to parse any more
 files" 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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref CoroutineParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/dtm/ref DTMStringPool.java<br />
<b>
<i>Committer's log entry: </i>
</b>doc.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D7<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>2.2.D7<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>07/18/2001<br />
<b>
<i>Removed: </i>
</b>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>Obsolete<br />
<br />
</li>
</ul>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
</tr>
</table>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D6</h3>
     <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 ("true" or "false") 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>
     
   <a name="dtm">‌</a>
     <p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.2.D2</h3>
     <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 "traversers", 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
"race" conditions that occured in the original code, and should make Xalan
much more robust.<br />
<br />
</li>
<li>*Much* more robust XPath itteration.  The "waiting" iterators of old are
no more, and good riddance.  There is stil lots more we want to do with
this mechanism.  (There is something here called MatchIterators, but it's
not being used yet for various reasons.  We will be taking advantage of
these down the line.)<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>
     
     <p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.1.0</h3>
     <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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>03/16/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Renamed "assert()" to "assertion()".

 Assert can be a keyword, and brake the compilation.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer KeyWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>Throw an error message if the key name in a key function was not defined<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Reworked "chunk growth" algorithm again. Growing mode not
 yet adequately tested, but fixed-size mode (which is what Xalan
 is currently using) is simpler code and shows improved performance.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>03/20/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Utility class to check your JVM environment for common problems<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>03/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added more .jar sizes to jarVersions listing<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor tweak to the javadoc.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/23/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>reset() versus setLength(0).<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemForEach.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for bug# 1116, getMatchedTemplate throws ClassCastException.
 Don't push template unless it is a xsl:template.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/26/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>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 "Stream closed" IOException message.

 3. Problem: the streams were not closed after reading the property file.

 Fixed.

 4. Problem: the double-check locking mechanism does not work in Java (see
 bug #919)

 &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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/27/2001<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/transformer TransformSnapshot.java
 TransformSnapshotImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 ProcessorStylesheetElement.java
 ProcessorTemplateElem.java StylesheetHandler.java
 XSLTElementDef.java XSLTElementProcessor.java
 XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/02/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>Code cleanup submitted by Art Welch &lt;art_w@EASTPOINT.COM&gt;.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add locator support to TreeWalker<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 QueuedStartElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Small fix made for getCurrentNode.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>04/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>Commented out extra call to getData()... this could be a big performance
 improvement for some stylesheets.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Additional support for tooling. Allow tools to take a snapshot of context and 
restart execution at that point.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/10/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Misc stuff left out from previous check in<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncCurrent.java<br />
<b>
<i>Committer's log entry: </i>
</b>Don't assume that the object returned by getSubContextList() is a 
PredicatedNodeTest object.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/11/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>04/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPath.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix Bugzilla bug:
 PR: 1106
 Submitted by: elharo@metalab.unc.edu<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>04/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql QueryParameter.java
 SQLExtensionError.java XConnection.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor Javadoc updates (add @author name, remove declared but unthrown @throws)<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>04/18/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Support for Streamable Mode- John Gentilin<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/objects XObject.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix copy/paste error. Want to use TransformerFactoryImpl's class loader.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>04/24/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Keep a copy of current contextNodeList is there is one<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>04/25/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added checkDirForJars() which checks java.ext.dirs as well now<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>04/26/2001<br />
<b>
<i>Added: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Add package.html for each package in javax.xml.transform.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>04/27/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/stree DocImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for #1561<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>04/29/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/03/2001<br />
<b>
<i>Modified: </i>
</b>java/src/javax/xml/transform/stream StreamResult.java
 StreamSource.java<br />
<b>
<i>Committer's log entry: </i>
</b>Small fix to avoid file:////path that may fail on some JDK.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>05/04/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql package.html<br />
<b>
<i>Committer's log entry: </i>
</b>Preliminary updates for John G's work.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>05/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Check for a null contextNodeList before returning its clone<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>05/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/stree StreeDOMBuilder.java<br />
<b>
<i>Committer's log entry: </i>
</b>Set the element's level correctly, before we process attributes.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>05/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Updated version number to 2.1.0<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>05/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>Updated version number to 2.1.0<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/functions FuncExtFunction.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>05/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
<b>
<i>Committer's log entry: </i>
</b>Set the correct order of xsl:include elements<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>johng@apache.org<b>
<i> on </i>
</b>05/13/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Updates Javadocs
 Submitted by:John Gentilin mailto://johnglinux@eyecatching.com<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Correct typo introduced in revision 1.30 causing problems with transforms on 
Unix platforms.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemChoose.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/javax/xml/parsers DocumentBuilderFactory.java
 SAXParserFactory.java
 java/src/javax/xml/transform TransformerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions ExtensionHandler.java
 ExtensionHandlerGeneral.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 CompilingStylesheetHandler.java
 java/src/org/apache/xalan/serialize SerializerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>05/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/stree SourceTreeHandler.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>This is the "thread pooling hook".

 It slightly changes the API used to create and wait for the transform thread.
 Instead of using threadCreate() and Thread.start() that creates a new thread
 and thread.join() that waits for a thread to end, we now use a 
ThreadControler
 class that has the equivalent methods:
 - run( Runnable ) - executes a task in a thread. The default implementation
 is identical with what we had, using new Thread() and start()
 - waitTread() - waits for a task to end. The default impl. is identical with
 the previous code, using thread.join().

 Someone wanting to use a thread pool for xalan will have to extend
 the ThreadControler and override the 2 methods, then call setThreadController.

 Xalan itself doesn't implement a thread pool right now ( for mosts uses it's
 not even needed - if you just do few transforms for example ), instead
 a server that runs xalan could plug it's own thread pool.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>Gary L Peskin &lt;garyp@firstech.com&gt;<b>
<i> on </i>
</b>05/15/2001<br />
<b>
<i>Committer's log entry: </i>
</b>
&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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>05/16/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ExtensionError.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed "conflict" in javadoc comments.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>05/16/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql package.html<br />
<b>
<i>Committer's log entry: </i>
</b>Editing pass.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>tmiller@apache.org<b>
<i> on </i>
</b>05/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xsltc TransletOutputHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>bug # 1406 fixed, omit xml header implemented<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>05/17/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update Javadoc and remove commented out reference to properties file
 PR:Bugzilla1627<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/18/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>05/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils TreeWalker.java
 SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>Catch SecurityException whenever accessing System.getProperty("user.dir");
 minor javadoc update<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>05/21/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>05/21/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>Catch SecurityException as needed
 PR: Bugzilla1258<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/21/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/21/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>05/21/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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 class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">This release includes no updates of the compatibility source code.</td>
</tr>
</table>
 
 
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java 2.0.1</h3>
<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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes ChildWalkerMultiStep.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix for bug reported by "Chris P. McCabe" &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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixes for exceptions being thrown that weren't being passed through
 the error listener.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes FollowingWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes PrecedingWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath SourceTreeManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/stree SourceTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/10/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/axes WalkerFactory.java<br />
<b>
<i>Committer's log entry: </i>
</b>In indirect response to bug posted by "Thee Boon Hoo" &lt;theebh@newstakes.com&gt;
 02/07/2001 09:37 PM

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

 An optimization was optimizing this to
 "/descendant-or-self::table, which is
 fine as long as indexing isn't used. Since
 we can not tell until runtime if indexing
 is being used, we have to turn of this
 optimization for all predicated "//foo[xx]"
 patterns.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor StylesheetPIHandler.java
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Patch for Dmitri IIyin to use the specified URIResolver.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemNumber.java<br />
<b>
<i>Committer's log entry: </i>
</b>Number Expression should be evaluated then rounded up.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Create a document fragment for the output node, for -flavor d2d.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler Compiler.java<br />
<b>
<i>Committer's log entry: </i>
</b>Better error message when quo is used.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/13/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Remove extra method/call to TransformerImpl.executeChildTemplates()<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/patterns NodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>Return an empty string instead of null from getLocalName() when the
 nodetest does not have a name. Encountered with the SQL extension,
 in response to bug reported by "Michael Kay" &lt;mhkay@iclway.co.uk&gt;,
 02/08/2001 08:57 AM.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ColumnData.java<br />
<b>
<i>Committer's log entry: </i>
</b>In getData() return an empty string instead of null if there is
 no data to be obtained.
 In response to bug reported by "Michael Kay" &lt;mhkay@iclway.co.uk&gt;,
 02/08/2001 08:57 AM.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>02/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/19/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ColumnHeader.java
 RowSet.java XStatement.java<br />
<b>
<i>Committer's log entry: </i>
</b>Use null nodetest to mean the same as "node()". This fixes a bug reported
 by "Voytenko, Dimitry" &lt;DVoytenko@SECTORBASE.COM&gt;
 where &lt;xsl:copy-of select="sql:query(...)"/&gt;
 crashes with NullPointerException, i.e.
 there are cases where we really don't want
 to set the NodeTest.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
<b>
<i>Committer's log entry: </i>
</b>Check for null token before checking if it is a letter<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/20/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix made for bug reported by "Glencross, Christian" 
&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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>02/21/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib Extensions.java<br />
<b>
<i>Committer's log entry: </i>
</b>Correct implementation of string value of a node.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>02/21/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>Added experimental usage metatag to all classes in this package,
 and an explanatory note to package.html.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/stree ElementImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Implement DeclHandler for identity transforms<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>02/22/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>02/23/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
<b>
<i>Committer's log entry: </i>
</b>Changed version to 2.0.1<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>02/23/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
<b>
<i>Committer's log entry: </i>
</b>Changed version to 2.0.1<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>02/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update text of error messages
 Submitted by: Andreas Zehnpfund<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>02/28/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Update printArgOptions() with better text and to better reflect actual
 options that are currently supported; catch missing -IN argument<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>jkesselm@apache.org<b>
<i> on </i>
</b>03/05/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>New approach to FastStringBuffer, and changes needed to support it.
 We still need to do some serious work on both the initial values of the
 tuning parameters and the heuristics driving the "chunk growth" algorithms.
 Currently set for fixed-sized chunks of 8Kch in main tree, .5Kch in RTF.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/06/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>03/06/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemParam.java
 java/src/org/apache/xpath Arg.java VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>03/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
<b>
<i>Committer's log entry: </i>
</b>Correct operation when length of content to be appended is zero.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/07/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix closing out doctype declaration<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/08/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>Change SystemIdResolver to default to user.dir if the base URI is null<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>03/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/09/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Check if there is a DeclHandler before calling it.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils WrappedRuntimeException.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemAttribute.java
 ElemElement.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/transformer QueuedEvents.java
 QueuedStartElement.java ResultTreeHandler.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
<b>
<i>Committer's log entry: </i>
</b>Applied patches from dmitri.ilyin@memiq.com (Dmitri Ilyin)
 from http://nagoya.apache.org/bugzilla/show_bug.cgi?id=705.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath XPathAPI.java<br />
<b>
<i>Committer's log entry: </i>
</b>Applied patch submitted by nboyd@atg.com (Norris Boyd)
 at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=702.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/serialize Encodings.java<br />
<b>
<i>Committer's log entry: </i>
</b>Applied patch submitted by havardw@underdusken.no (H嶡rd Wigtil).
 Also added "XXX-X" variants for all "XXX_X" java encoding names.
 I'm not totally confident that this is the right thing to do, but I can't
 see that it will hurt, except to make the table a bit larger. I
 would prefer to be safe and make sure we handle the encoding.
 See my comments in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=718.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates ElemTemplateElement.java
 StylesheetRoot.java<br />
<b>
<i>Committer's log entry: </i>
</b>Minor changes to better bottleneck throwing of Runtime exceptions
 during processing.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql XConnection.java
 XStatement.java<br />
<b>
<i>Added: </i>
</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java ExtensionError.java
 PooledConnection.java QueryParameter.java
 SQLExtensionError.java XConnectionPoolManager.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/11/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath/patterns NodeTest.java<br />
<b>
<i>Committer's log entry: </i>
</b>Xerces at some point decided to use "" instead
 of null for null namespaces. There has been a
 discussion between Gary Peskin in
 Joe Kessleman on xalan-dev about this,
 but I hadn't been fully keeping up the the
 thread that well, and missed it's relation to
 this problem. I include some of the discussion
 at the end of this note. I made Xalan be able to
 compare a "" namespace to null for now, until
 we get this resolved.

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

 &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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>03/12/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ExtensionError.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils TreeWalker.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added back in the TreeWalker(ContentHandler contentHandler)
 constructor, because I'm worried I'll break more dependent code.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>Implement new arguments for the command line interface: URIResolver, 
EntityResolver and ContentHandler<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix error message to say that 2 or 3 arguments are required.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/processor ProcessorLRE.java
 java/src/org/apache/xalan/res XSLTErrorResources.java<br />
<b>
<i>Committer's log entry: </i>
</b>Better error message for missing or incorrect XSLT namespace declaration in a 
stylesheet<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>garyp@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>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 />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xpath VariableStack.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>curcuru@apache.org<b>
<i> on </i>
</b>03/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>costin@apache.org<b>
<i> on </i>
</b>03/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/xslt Process.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/14/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xml/utils StringVector.java<br />
<b>
<i>Committer's log entry: </i>
</b>Added missing @serial Javadoc tags.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/15/2001<br />
<b>
<i>Modified: </i>
</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
                        DefaultConnectionPool.java ExtensionError.java
                        SQLExtensionError.java XConnection.java
                        XConnectionPoolManager.java XStatement.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/02/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java
 XSLTResultTarget.java<br />
<b>
<i>Committer's log entry: </i>
</b>Implement some more methods for compatibility<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>02/02/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed javadoc for api that was just added back.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>02/02/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTResultTarget.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fixed javadoc for api that was just added back.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/02/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Fix problem with calling the processor with a liaison<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/02/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/12/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Set system id in stylesheet handler<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/14/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br />
<b>
<i>Committer's log entry: </i>
</b>Call local setSystemId.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/15/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>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>
<b>
<i>Committed by </i>
</b>mmidy@apache.org<b>
<i> on </i>
</b>02/22/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xslt StylesheetRoot.java<br />
<b>
<i>Committer's log entry: </i>
</b>Add getOutputMethod API.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>dleslie@apache.org<b>
<i> on </i>
</b>03/07/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xpath/xml
 XMLParserLiaisonDefault.java<br />
<b>
<i>Committer's log entry: </i>
</b>Put in Apache copyright.<br />
<br />
</li>
<li>
<b>
<i>Committed by </i>
</b>sboag@apache.org<b>
<i> on </i>
</b>03/13/2001<br />
<b>
<i>Modified: </i>
</b>java/compat_src/org/apache/xalan/xpath/xml TreeWalker.java
 java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
<b>
<i>Committer's log entry: </i>
</b>Made changes for change to API for XalanJ2 TreeWalker, which
 now requires that the DOM helper be created by the caller.</li>
 </ul>


<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java version 2.0.0</h3>
<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">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 "unknown error in XPath" as a fatal error.<br />
<br />
</li>
  <li>Added support in stylesheet processing instructions for "text/xml" and "application/xml+xslt" 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="x"&gt;&lt;b&gt; to produce &lt;a xmlns:a="x"&gt;&lt;b xmlns:a="x"&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 "Stylesheet directed termination".<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 "EUCJIS" in FormatterToXML to "EUC_JP".<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("xxx").<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>


<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java version 2.0.D07</h3>
<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="no".  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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java version 2.0.D06</h3>
<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<b>
<i>Xxx</i>
</b> to SerializerTo<b>
<i>Xxx</i>
</b>. 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>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Changes for Xalan-Java version 2.0.D05</h3>
<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® <a href="http://jcp.org/aboutJava/communityprocess/review/jsr063/">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">‌</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>getSerializer("xml")</code>, for example, with <code>getSerializer(OutputProperties.getDefaultMethodProperties("xml"))</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>{http\u003a//xml.apache.org/xslt}use-url-escaping=no</code>
<br />
and you can control indenting with<br />
<code>{http\u003a//xml.apache.org/xslt}indent-amount=<b>
<i>n</i>
</b>
</code>
</p>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">The colon after the "http" protocol must be escaped.</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>
<blockquote class="source">
<pre>&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:xalan="http://xml.apache.org/xslt" version="1.0"&gt;

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

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

&lt;/xsl:stylesheet&gt;</pre>
</blockquote>
<p>=== myentities.ent ===</p>
<blockquote class="source">
<pre>quot 34
amp 38
lt 60
gt 62
lala 125</pre>
</blockquote>
<p>The output is:</p>
<blockquote class="source">
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;out&gt;&amp;lala;&lt;/out&gt;</pre>
</blockquote>
<p>See also <a href="usagepatterns.html#outputprops">Setting output properties in your stylesheets</a>.</p>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
</div>
<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
</div>
</body>
</html>
