<?xml version="1.0" standalone="no"?> 
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
 * Copyright 1999-2004 The Apache Software Foundation.
 *
 * Licensed 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.
-->
<!-- $Id$ -->
<s1 title="History of software changes">
<p>The following sections list the core software changes in each release since &xslt4j; version 2.0.D01.</p>
&history2xsltc;
<s2 title="Changes for &xslt4j; 2.7.0">
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/03/04<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
Submitted by: Brian Minchau<br/>
Modified code for potential extension of classes with callbacks to the extensions.<br/><br/></li>

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

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

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

<li><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2004/04/28<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mcnamara@apache.org<ref> on </ref>2004/05/03<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/style/stylesheets designdoc2html.xsl<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mcnamara@apache.org<ref> on </ref>2004/05/03<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs xml-site-style.tar.gz<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/05/03<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2004/05/06<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/05/13<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br/>
<ref>Committer's log entry: </ref>
Submitted by:	Brian Minchau<br/>
Reviewed by:	Christine Li<br/>
Fixing binary compatibility (serialization/de-serialization) of XSLTProcessorApplet.<br/><br/></li>

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

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

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

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

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

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

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

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

<li><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2004/08/17<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2004/08/17<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2004/08/17<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2004/08/17<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/08/26<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils Trie.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/08/27<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2004/08/30<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<br/>
<ref>Committer's log entry: </ref>
Fix a memory leak problem described in bugzilla 28082.<br/><br/></li>

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

<li><ref>Committed by </ref>johng@apache.org<ref> on </ref>2004/09/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>johng@apache.org<ref> on </ref>2004/09/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mcnamara@apache.org<ref> on </ref>2004/09/17<br/>
<ref>Modified: </ref> xml-xalan/java build.xml<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2004/10/01<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/patterns NodeTest.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/10/06<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/10/06<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/operations Variable.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/10/06<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor ProcessorNamespaceAlias.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2004/10/13<br/>
<ref>Modified: </ref> xml-xalan/java build.xml<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2004/10/13<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/10/14<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
PR: XALANJ-1891<br/>
Submitted by:	Brian Minchau<br/>
Reviewed by:	Yash Talwar<br/><br/></li>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/01/20<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/01/24<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath CachedXPathAPI.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/01/27<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/01/27<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2005/02/04<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/02/09<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res 
XPATHErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/02/09<br/>
<ref>Modified: </ref> xml-xalan/java/samples/trax ExampleContentHandler.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2005/02/11<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2005/02/11<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java xml-xalan/java/src/org/apache/xml/serializer 
TreeWalker.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2005/02/11<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java<br/>
<ref>Committer's log entry: </ref>
Fix for XALANJ-2037.  The trace information doesn't have the right location information in this case.<br/><br/></li>

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

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

<li><ref>Committed by </ref>mcnamara@apache.org<ref> on </ref>2005/03/03<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br/>
<ref>Committer's log entry: </ref>
Patch for XALANJ-2026.  Fixes typo in Debugger interface code example.
<br/><br/></li><li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2005/03/07<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer/utils 
MsgKey.java SerializerMessages.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2005/03/10<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ytalwar@apache.org<ref> on </ref>2005/03/10<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/03/14<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan builds.xml<br/>
<ref>Committer's log entry: </ref>
Patch for Jira bug report XALANJ-2079.  Updated links to nightly Gump build. Reviewed by Brian Minchau.<br/><br/></li>

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

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

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

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

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

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

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

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

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

<li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2005/06/03<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2005/06/07<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2005/06/15<br/>
<ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2005/06/21<br/>
<ref>Modified: </ref> xml-xalan/java/src/META-INF/services javax.xml.xpath.XPathFactory<br/>
<ref>Committer's log entry: </ref>
Service provider file for javax.xml.xpath.XPathFactory.<br/><br/></li>

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

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

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

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

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

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

<li><ref>Committed by </ref>jycli@apache.org<ref> on </ref>2005/06/29<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2005/07/05<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2005/07/15<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br/>
<ref>Committer's log entry: </ref>
Applying patch2 from XALANJ-2023.<br/>
Submitted by Ken Weiner, reviewed, approved, applied by Brian Minchau.<br/><br/></li>

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

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

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

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

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

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

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

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

</ul>
</s2>

<s2 title="Changes for &xslt4j; 2.6.0">
<p> Core (Non-XSLTC) source code updates:</p>
<ul>
<li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/11/24<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/11/24<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java<br/><br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/11/25<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<br/><br/>
<ref>Committer's log entry: </ref>
PR: bugzilla 24278<br/><br/>
Submitted by:	Brian Minchau<br/><br/></li>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/02/17<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java
xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br/><br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/02/17<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan faq.xml<br/><br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/02/18<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br/><br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/02/18<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<br/><br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2004/02/18<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java<br/><br/>
<ref>Committer's log entry: </ref>
PR: bugzilla 16889<br/>
Submitted by:	Elson Jiang<br/>
Reviewed by:	Brian Minchau<br/>
Fixes ElemForEach TraceListener bug.<br/><br/></li>

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

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

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

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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/08/13<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<br/>
<ref>Committer's log entry: </ref>


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

classloading.  See bugzilla #16675.
<br/><br/></li>
<li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/08/14<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan overview.xml trax.xml<br/>
<ref>Committer's log entry: </ref>
A few minor doc updates.
<br/><br/></li>
<li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/08/18<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<br/>
<ref>Committer's log entry: </ref>
Fix a typepo in ExtensionHandlerGeneral.java. It should check for null
instead of nonnull.
<br/><br/></li>
<li><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/08/25<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor XSLTElementProcessor.java xml-xalan/java/src/org/apache/xalan/templates 
Stylesheet.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/08/26<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/08/26<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/08/26<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java SecuritySupport.java SecuritySupport12.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/08/26<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils SecuritySupport.java SecuritySupport12.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/08/27<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/08/27<br/>
<ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/08/28<br/>
<ref>Modified: </ref> xml-xalan/java build.xml<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/09/03<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java xml-xalan/java/src/org/apache/xalan/res 
XSLTErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/09/03<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 22777
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/09/03<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/09/06<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 22808
<br/><br/></li>
<li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/09/09<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/09/11<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer SerializerSwitcher.java 
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/>
<ref>Committer's log entry: </ref>
Apply the patch from Richard Cao (richcao@ca.ibm.com) for bug 13082.
<br/><br/></li>
<li><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/09/11<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br/>
<ref>Committer's log entry: </ref>
Updating PrintTraceListener to print information about the recently
added ExtensionEvents.
<br/><br/></li>
<li><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/09/11<br/>
<ref>Modified: </ref> xml-xalan/java/samples/Trace Trace.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/09/11<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan samples.xml usagepatterns.xml<br/>
<ref>Committer's log entry: </ref>
Documenting the addition of the ExtensionEvent trace event, as well as
the Trace sample changes.
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/09/18<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/09/19<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/09/19<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/09/25<br/>
<ref>Modified: </ref> xml-xalan/java/xdocs/sources entities.ent xml-xalan/java/xdocs/sources/xalan downloads.xml faq.xml 
history.xml index.xml resources.xml<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/05<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/06<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/10/09<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer Encodings.java SecuritySupport.java SecuritySupport12.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/15<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/10/15<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
Fix for bugzilla 22342.
Rename variables with name "enum". In JDK 1.5, enum is a keyword.
<br/><br/></li>
<li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java<br/>
<ref>Committer's log entry: </ref>
Apply the patch for bugzilla 14149 from Joanne Tong (joannet@ca.ibm.com).
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath XPathContext.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 7408. Submitrd by  Richard Cao.
<br/><br/></li>
<li><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java xml-xalan/java/src/org/apache/xalan/templates DecimalFormatProperties.java KeyDeclaration.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 5972. Submitrd by  Richard Cao.
<br/><br/></li>
<li><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 788. Submitted by  Richard Cao.
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java KEYS<br/><ref>Committer's log entry: </ref>
Added the public key of "Brian James Minchau" to the xml-xalan/java/KEYS file.
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/xslt Process.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>igorh@apache.org<ref> on </ref>2003/10/16<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates TemplateList.java<br/>
<ref>Committer's log entry: </ref>
Patch for Bugzilla Bug 789. Submitted by  Richard Cao.
<br/><br/></li>
<li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/10/17<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/17<br/>
<ref>Modified: </ref> 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/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/10/20<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/21<br/>
<ref>Modified: </ref> xml-xalan/java build.xml<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/21<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/21<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
ToXMLSAXHandler.java
xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/22<br/>
<ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/22<br/>
<ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
PR: bugzilla 23983
Submitted by:	Brian Minchau
javadoc cleanup
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/22<br/>
<ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/23<br/>
<ref>Modified: </ref> java/src/org/apache/xml/serializer Encodings.properties ToTextStream.java
java/src/org/apache/xml/res XMLErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/23<br/>
<ref>Modified: </ref> java/src/org/apache/xalan/templates ElemLiteralResult.java
ElemUse.java<br/>
<ref>Committer's log entry: </ref>
Error message for testcase attribseterr07
PR: bug 782
Submitted by:		 Richard Cao
Reviewed by:		 Brian Minchau
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/23<br/>
<ref>Modified: </ref> java/src/org/apache/xml/serializer CharInfo.java
ToHTMLStream.java ToXMLStream.java ToStream.java<br/>
<ref>Committer's log entry: </ref>
PR: bug 24025
Submitted by:		 Brian Minchau
Reviewed by:		 Henry Zongaro
<br/><br/></li>
<li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/23<br/>
<ref>Modified: </ref> java/src/org/apache/xml/utils QName.java
java/src/org/apache/xml/res XMLErrorResources.java<br/>
<ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/10/23<br/>
<ref>Modified: </ref> ava/src/org/apache/xalan/lib PipeDocument.java<br/>
<ref>Committer's log entry: </ref>
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>
</s2>
<s2 title="Changes for &xslt4j; 2.5.1">
<p> Core (Non-XSLTC) source code updates:</p>
<ul><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/04/10<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>
Applying Sarah McNamara's (mcnamara@ca.ibm.com) patches to update
version numbers in XalanJ.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/04/10<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Sarah McNamara's (mcnamara@ca.ibm.co) documentation patch.
<br/><br/></li><li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/04/10<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/04/16<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/04/23<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan faq.xml<br/><ref>Committer's log entry: </ref>
New FAQ from Christine Li (jycli@ca.ibm.com) for using Xalan in Tomcat
with JDK 1.4.
<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>2003/04/23<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>2003/04/23<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/04/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>
Change in comments only. Deleted old commented out (and incorrect)
double-checked locking code.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/04/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<br/><ref>Committer's log entry: </ref>
Duplicate trace was event being issued.  One from ElemElement and then 
from its parent class: ElemUse.
<br/><br/></li><li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/04/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/04/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/04/30<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java Extensions.java xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/03<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/06<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/06<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/05/07<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/09<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/05/09<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan faq.xml<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/05/13<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/13<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/15<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer Encodings.java OutputPropertiesFactory.java SerializerFactory.java Utils.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/05/20<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java<br/><ref>Committer's log entry: </ref>
Adding missing trace events for the func:result element.
<br/><br/></li><li><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/21<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/05/22<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan faq.xml<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/05/26<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/05/26<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/26<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/05/27<br/><ref>Modified: </ref> xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<br/><ref>Committer's log entry: </ref>
Update to the SQL extension sample from Christine Li (jycli@ca.ibm.com).
<br/><br/></li><li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2003/05/27<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/27<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/05/27<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java xml-xalan/java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/05/28<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/28<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils BoolStack.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/28<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java SerializerBase.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>minchau@apache.org<ref> on </ref>2003/05/28<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br/><ref>Committer's log entry: </ref>
Support for a ToHTMLSAXHandler serializer to be reset() and re-used.
Submitted by: Brian Minchau
<br/><br/></li>
<li><ref>Committed by </ref>grchiu@apache.org<ref> on </ref>2003/05/28<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan faq.xml<br/><ref>Committer's log entry: </ref>
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>
</s2>
<s2 title="Changes for &xslt4j; 2.5.0">
<p> Core (Non-XSLTC) source code updates:</p>
<ul><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/21<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/02/25<br/><ref>Modified: </ref> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br/><ref>Committer's log entry: </ref>
Update to latest version of xml-apis.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/26<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/26<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/27<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/27<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Small improvement to DescendantIterator and TypedDescendantIterator.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/02/28<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
More sample and documentation updates from Christine Li (jycli@ca.ibm.com).
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/28<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/28<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/02/28<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>
Correct an error. The DTMDefaultBase.getPreviousSibling() interface
returns a node handle instead of a node identity.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/02/28<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Patches for samples from Christine Li (jycli@ca.ibm.com)
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/03<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br/><ref>Committer's log entry: </ref>
Propagate the change from head branch to XSLTC_DTM.
Add a new getTransformer() interface to TrAXFilter.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/03<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br/><ref>Committer's log entry: </ref>
Add a new getTransformer() interface to TrAXFilter.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/03<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/06<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Improvement for xsl:number. Introduce an optimized version of
getExpandedTypeID() in SAX2DTM2.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/07<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/10<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/13<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Small improvement in FastStringBuffer.sendSAXCharacters() when the whole
piece of text is in one chunk.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/14<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Small improvement in SAX2DTM2.getStringValueX() and dispatchCharacterEvents()
by saving one local variable.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/14<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/20<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>2003/03/20<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br/><ref>Committer's log entry: </ref>
Oops! Old bug, just noticed -- we forgot to override RootTraverser's typed first().
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/21<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/21<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Introduce a copyAttribute() method in SAXImpl to speed up
attribute copying.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
XSLTC_DTM performance work
Improvement in DTM building. Make the code more efficient
in a few expensive interfaces.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/03/24<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/03/25<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Committing Christine Li's (jycli@ca.ibm.com) patch for bugzilla #18210.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.ref.dom2dtm.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMAxisIterator.java DTMManager.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.dtm.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils DOMHelper.java FastStringBuffer.java IntStack.java SuballocatedIntVector.java XMLStringDefault.java XMLStringFactoryDefault.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xml.utils.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions XSLProcessorContext.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.extensions.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor ProcessorOutputElem.java TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.processor.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.templates.
Replace ResultTreeHandler with SerializationHandler.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/trace GenerateEvent.java PrintTraceListener.java<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.trace.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Changes in org.apache.xalan.transformer for the new serializer.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java build.xml xsltc_todo.xml<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/01<br/><ref>Modified: </ref> xml-xalan/java/src MANIFEST.MF<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2003/04/02<br/><ref>Modified: </ref> xml-xalan/java/bin xercesImpl.jar<br/><ref>Committer's log entry: </ref>
Updating to Xerces-J 2.4.0.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/02<br/><ref>Modified: </ref> xml-xalan/java/src MANIFEST.MF<br/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Update spec version for XSLTC in MANIFEST.MF
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/02<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/02<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head
Add new sample files.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2003/04/02<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Merging XSLTC_DTM and common serializer to the head

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

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

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

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

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

NullPointerException when attempting to build a stylesheet from 
a DOM Element instead of a Document node.
<br/><br/></li><li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2002/07/30<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2002/07/30<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>amiro@apache.org<ref> on </ref>2002/08/02<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br/><ref>Committer's log entry: </ref>
changed verbage to agree with new support of constructors and nonstatic external java functions
<br/><br/></li><li><ref>Committed by </ref>zongaro@apache.org<ref> on </ref>2002/08/07<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/09<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates ElemValueOf.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2002/08/14<br/><ref>Modified: </ref> xml-xalan/java/src MANIFEST.MF<br/><ref>Committer's log entry: </ref>
For Bug#6547. Remove reference to old jar files.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/15<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/templates FuncKey.java xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2002/08/16<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath/axes BasicTestIterator.java<br/><ref>Committer's log entry: </ref>
For Bug#11123. Fix infinite loop in union expression.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2002/08/16<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java<br/><ref>Committer's log entry: </ref>
For bug#7776. Fix argument passing problem for Java extension.
<br/><br/></li><li><ref>Committed by </ref>mkwan@apache.org<ref> on </ref>2002/08/16<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br/><ref>Committer's log entry: </ref>
See bug#10945. Test if a node is a DTMNodeProxy before casting.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/19<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br/><ref>Committer's log entry: </ref>
Patch for bugzilla#11834.  Replaced calls to DTM.getDocument with get 
DTM.getDocumentRoot.
<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>2002/08/21<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> xml-xalan/java/bin xml-apis.jar<br/><ref>Committer's log entry: </ref>
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><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan builds.xml<br/><ref>Committer's log entry: </ref>
Small updates to the build documentation.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>
Updating version numbers to 2.4.0 for new release.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> 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/><ref>Committer's log entry: </ref>
Updating version numbers to 2.4.0 for new release.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> xml-xalan/java commits.xml<br/><ref>Committer's log entry: </ref>
New commits.xml for upcoming Xalan 2.4.0 release.
<br/><br/></li><li><ref>Committed by </ref>ilene@apache.org<ref> on </ref>2002/08/27<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan history.xml xsltc_history.xml<br/><ref>Committer's log entry: </ref>
New history.xml, xsltc_history.xml for upcoming Xalan 2.4.0 release.
<br/><br/></li></ul>
</s2>
<s2 title="Changes for &xslt4j; 2.3.1">
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathContext.java<br/><ref>Committer's log entry: </ref>Well, _that_ was dumb... Forgot one "don't dereference if null" test.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XRTreeFrag.java<br/><ref>Committer's log entry: </ref>Just comment<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/04/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/04/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils IntStack.java<br/><ref>Committer's log entry: </ref>Bugzilla 6854: Return the stack exception, as documented.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/12/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/19/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref TestDTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/19/2002<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref TestDTMNodes.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/20/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref TestDTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/21/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java<br/><ref>Committer's log entry: </ref>Properly catch exception from CharInfo constructor, and try again.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/21/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/21/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathContext.java<br/><ref>Committer's log entry: </ref>Merge from redundent expression elemination branch.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/21/2002<br/><ref>Modified: </ref>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/><ref>Added: </ref>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/><ref>Removed: </ref>java/src/org/apache/xalan/transformer KeyWalker.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath DOMHelper.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions ExtensionsTable.java
 MethodResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib package.html<br/><ref>Added: </ref>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java<br/><ref>Committer's log entry: </ref>Preliminary set of EXSLT extension implementations.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/22/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib ExsltCommon.java
 ExsltMath.java ExsltSets.java Extensions.java<br/><ref>Committer's log entry: </ref>Added Apache license.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/23/2002<br/><ref>Modified: </ref>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/><ref>Added: </ref>java/src/org/apache/xalan/trace TraceListenerEx2.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/24/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Set the DEVELOPMENT number to 1, in prep for a developer's release.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/24/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemForEach.java<br/><ref>Committer's log entry: </ref>Make sure the current element is nulled out if debug mode so that
 TransformerImpl#getElementCallstack works correctly.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/24/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemElement.java<br/><ref>Committer's log entry: </ref>Added fire trace events, which seemed to be missing.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/24/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Added getElementCallstack() and getTemplateCallstack() methods, for support
 of xsl debuggers.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/24/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Changed the release number to 4, since new functionality has been added.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/trace TraceListenerEx2.java<br/><ref>Committer's log entry: </ref>Fix JavaDoc comment.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/trace PrintTraceListener.java<br/><ref>Committer's log entry: </ref>Handle TraceListenerEx2, even though we don't do anything with the extra 
methods.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Fix problem with the SAXSourceLocator not getting the line number info.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SAXSourceLocator.java<br/><ref>Committer's log entry: </ref>Add a constructor that takes a SourceLocator.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemTemplateElement.java<br/><ref>Committer's log entry: </ref>Added getOwnerXSLTemplate method, a convenience function.
 Implemented getLocalName().<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor StylesheetHandler.java
 ProcessorTemplateElem.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XNull.java<br/><ref>Committer's log entry: </ref>Change derivation to XNodeSet.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathProcessorException.java
 XPathException.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XObject.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XRTreeFrag.java<br/><ref>Committer's log entry: </ref>Add constructor that lets us set the owning ExpressionNode.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>For getCurrentElement, add some protection for access when there is no
 current element.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemVariable.java
 ElemWithParam.java<br/><ref>Committer's log entry: </ref>Pass the template to the XRTreeFrag constructor, so we can establish
 better context.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/29/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathException.java<br/><ref>Committer's log entry: </ref>Set the "StylesheetNode" to the ElemTemplateElement instead of the
 DOM backpointer.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/02/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Wrap runtime exception in TransformerException, so we'll get line number info
 when NPE and the like.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/02/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XRTreeFrag.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/04/2002<br/><ref>Added: </ref>java/src/org/w3c/dom/xpath COPYRIGHT.html
 XPathEvaluator.java XPathException.java
 XPathExpression.java XPathNSResolver.java
 XPathNamespace.java XPathResult.java<br/><ref>Committer's log entry: </ref>Add Document Object Model (DOM) Level 3 XPath Specification.
 (Temp until it's added to xml-commons.)<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/05/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>On entry, set the document base URI in the DTM. Fixes bug reported
 by Christine.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/09/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/09/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>Clean-up of dumpDTM method, some code clarity changes.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/09/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/09/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>(nitpicking)<br/><br/></li><li><ref>Committed by </ref>pauldick@apache.org<ref> on </ref>04/10/2002<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref TestDTM.java<br/><ref>Committer's log entry: </ref>Moved into Test directory<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/10/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>Cleaner disabling of experimental code. Sorry 'bout that.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/10/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/10/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/operations Variable.java
 java/src/org/apache/xpath/patterns NodeTest.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/10/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemForEach.java TemplateList.java
 VarNameCollector.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Added: </ref>java/src/org/apache/xml/dtm XSequence.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Added: </ref>java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm XSequence.java
 java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
 XNI2DTM.java<br/><ref>Committer's log entry: </ref>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Added: </ref>java/src/org/apache/xml/dtm Tag: Xalan3 XSequence.java<br/><ref>Committer's log entry: </ref>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/12/2002<br/><ref>Added: </ref>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
 DTM_XSequence.java XNI2DTM.java<br/><ref>Committer's log entry: </ref>These should only be on the Xalan3 branch, not the main branch.
 I _hope_ I can split this successfully...<br/><br/></li><li><ref>Committed by </ref>santiagopg@apache.org<ref> on </ref>04/15/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc Tag:
 jaxp-ri-1_2_0-fcs-branch DOM.java<br/><ref>Committer's log entry: </ref>New implementation of xsl:element<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler XPathParser.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler XPathParser.java<br/><ref>Committer's log entry: </ref>Decided I _was_ overoptimizing.

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

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

<s2 title="Changes for &xslt4j; 2.3 and 2.3.1">
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>01/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql XConnection.java<br/><ref>Committer's log entry: </ref>Fixed second connection problem<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>01/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Update for new DTM Model<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>01/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql DTMDocument.java<br/><ref>Committer's log entry: </ref>Update for new DTM Model<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>01/17/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java
 DTMDocument.java<br/><ref>Committer's log entry: </ref>Removed Debug<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/18/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/18/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SuballocatedIntVector.java<br/><ref>Committer's log entry: </ref>&lt;blush&gt;Wrong side of the fencepost...&lt;/blush&gt;<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/23/2002<br/><ref>Modified: </ref>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/><ref>Added: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>01/25/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>01/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/res XPATHErrorResources.java<br/><ref>Committer's log entry: </ref>bug 4762: Fixed the duplicate error message in XPATH.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Bugzilla 4054: Retain previously set output properties when adding new ones.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>01/28/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>01/30/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib NodeInfo.java<br/><ref>Committer's log entry: </ref>Changed "system id" to "public identifier" in javadoc
 comments for publicId() methods.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/30/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>01/30/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates StylesheetComposed.java
 StylesheetRoot.java TemplateList.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/31/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>01/31/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/01/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>Bugzilla 6182. Darned fence posts; always either too many or not enough... 
&lt;grin/&gt;<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/01/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java
 XPathContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/04/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/04/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/04/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/04/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Bugzilla 5346: Oops. Forgot to take out a debugging printout.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/05/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/05/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Bug 5346: One more (last, I hope) edge case.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/05/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Bug 5346: Gaaah. This regressions was just plain foolish flailing. "Less 
haste, more speed."<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/05/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize CharInfo.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/06/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>02/06/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan Version.java
 java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Whoops! Never updated release number to 2.3 in these version files!<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>02/06/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>updated version number to 2.3<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/07/2002<br/><ref>Modified: </ref>java/src/org/apache/xpath SourceTreeManager.java<br/><ref>Committer's log entry: </ref>Bug 6304: Remove print stacktrace<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/08/2002<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>02/12/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>02/14/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Update various .jar sizes for recent builds and 2.3.0<br/><br/></li></ul>
</s2>   
<s2 title="Changes for &xslt4j; 2.2">
<p>Following a series of Developer releases, &xslt4j; 2.2 represents a stable, production-quality release with 
the <link idref="dtm">DTM (Document Table Model)</link>. &xslt4j; uses the DTM to represent the XML source document 
to be transformed. Please send your feedback to the <human-resource-ref idref="xalandev"/>.</p>
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>11/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>updated version number to 2.2.D14<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>11/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>updated version number to 2.2.D14<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br/><ref>Committer's log entry: </ref>Bugzilla 5242: Special-case initializing iteration from Document node -- 
one-liner wasn't safe.<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>12/04/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc ProcessorVersion.java<br/><ref>Committer's log entry: </ref>new class to version xsltc software<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath CachedXPathAPI.java
 XPathContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils AttList.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SuballocatedIntVector.java<br/><ref>Committer's log entry: </ref>Finally following up on an old hunch, I switched from /% addressing
 to shift-and-mask. Big improvement!<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 DOM2DTMdefaultNamespaceDeclarationNode.java<br/><ref>Committer's log entry: </ref>A few more subtle performance tweaks, and an actual bug.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>12/20/2001<br/><ref>Added: </ref>java/src/org/apache/xml/utils ListingErrorHandler.java<br/><ref>Committer's log entry: </ref>Alternate ErrorHandler/ErrorListener implementation that allows
 configuration and prints errors out similarly to javac<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>12/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils AttList.java<br/><ref>Committer's log entry: </ref>Bugzilla 5496; previously unimplemented functions.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>01/03/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils DOMBuilder.java<br/><ref>Committer's log entry: </ref>[Bug 5528] DOMBuilder mixed DOM Level 1 and 2<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>01/11/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>updated release number to 2.2.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>01/11/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>updated release number to 2.2.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>01/13/2002<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>01/14/2002<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>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><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>   
<s2 title="Changes for &xslt4j; 2.2.D14">
<p>&xslt4j; 2.2.D14 is intended to be the final release in the current series of Developer releases incorporating
     the <link idref="dtm">DTM</link>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
     standard "User" release. Accordingly, we plan to release &xslt4j; 2.2 soon.</p>
     <p>&xslt4j; 2.2.D14 also includes a new <jump href="apidocs/org/apache/xpath/CachedXPathAPI.html">CachedXPathAPI</jump> class that
     provides an enhanced alternative to the XPath convenience methods in <jump href="apidocs/org/apache/xpath/XPathAPI.html">XPathAPI</jump>.</p>
     <p>Beginning with 2.2.D12, xalan.jar contains just the &xslt4j; implementation. The source files for the SAX level 2, DOM 2, 
     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<resource-ref idref="xmlapirepository"/>), 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. <em>To run &xslt4j;, you must add xml-apis.jar to your classpath.</em> See <link idref="getstarted"
     anchor="classpath">Setting up the system class path</link>.</p>
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan Version.java<br/><ref>Committer's log entry: </ref>D13 internal version number update<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>D13 internal version number update<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeList.java<br/><ref>Committer's log entry: </ref>Bugzilla4842, secondary complaint (glitch in getChildren)... &lt;blush/&gt;<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>Bugzilla4842: Expand the proxy layer to support more of the DOM API.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>Namespace decls are themselves not namespace-aware, in the
 Namespaces 1.0 REC. Use the qname.Grumble.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>"Tupograflica eror". Sorry 'bout that!<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/26/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref
 DTMDefaultBaseTraversers.java<br/><ref>Committer's log entry: </ref>Found the glitch causing the axes108 bug -- exptype/type.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Added: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm
 DOM2DTMdefaultNamespaceDeclarationNode.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/29/2001<br/><ref>Modified: </ref>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/><ref>Added: </ref>java/src/org/apache/xpath CachedXPathAPI.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>Minor tweaks<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>11/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Redirect.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>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><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D12 and 2.2.D13">
<p>&xslt4j; 2.2.D13 is intended to be the final release in the current series of Developer releases incorporating
     the <link idref="dtm">DTM</link>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
     standard "User" release. Accordingly, we plan to release &xslt4j; 2.2 soon.</p>
     <p>Beginning with this release, xalan.jar contains just the &xslt4j; implementation. The source files for the SAX level 2, DOM 2, 
     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<resource-ref idref="xmlapirepository"/>), 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. <em>To run &xslt4j;, you must add xml-apis.jar to your classpath.</em> See <link idref="getstarted"
     anchor="classpath">Setting up the system class path</link>.</p>
     <p>Beginning with this release, we are shipping two distribution files; a binary
     distribution file, which includes everything needed to run &xslt4j; and build applications, and a source distribution. For
     more information, see <link idref="getstarted" anchor="download">Downloading what you need</link>.</p>
     <p>This release also includes <link idref="samples" anchor="validatexmlinput">ValidateXMLInput</link>, 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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Bugzilla 3384. See comments in the toDouble method; I suspect this may be 
wasted micro-optimization.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Is " 12 34 . 56 78 " really considered acceptable?
 Or should whitespace within the value be treated as NAN?<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Updated build number to 2.2.D12.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>Updated build number to 2.2.D12.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemLiteralResult.java<br/><ref>Committer's log entry: </ref>Fix for Bugzilla1133, LRE21: xsl:extension-element-prefixes should be 
considered an exclusion<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemLiteralResult.java<br/><ref>Committer's log entry: </ref>Fix for Bugzilla 3464. Exposes errors in conformance tests namespace93 and 94.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>10/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize CharInfo.java
 HTMLEntities.res XMLEntities.res<br/><ref>Committer's log entry: </ref>Fix Bugzilla#4000, force reading of *Entites.res to be in UTF-8; added 
comments
 PR: Bugzilla#4000<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>Gaaah. Typo.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>10/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Added: </ref>java/src/org/apache/xalan Version.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan Version.java<br/><ref>Committer's log entry: </ref>Be careful with parentheses when using ?: operator.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<br/><ref>Committer's log entry: </ref>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref CoroutineSAXFilterTest.java<br/><ref>Committer's log entry: </ref>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
code.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan Version.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemApplyTemplates.java
 ElemCallTemplate.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/xml/sax/helpers ParserAdapter.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>10/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Xerces.java<br/><ref>Committer's log entry: </ref>In Xerces2, SAXParser no longer seems to inherit from
 XMLReader; explicit casts needed to work around that.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>10/23/2001<br/><ref>Removed: </ref>java/src/javax/xml/parsers SAXParserFactory.java
 SAXParser.java ParserConfigurationException.java
 package.html FactoryFinder.java
 FactoryConfigurationError.java
 DocumentBuilderFactory.java DocumentBuilder.java<br/><ref>Committer's log entry: </ref>Remove javax.xml.parsers package from xalan sources since we no longer ship 
with these files<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize CharInfo.java<br/><ref>Committer's log entry: </ref>Microsoft VJ++ workaround. Should never arise in any reasonably
 standards-compliant Java environment, but VJ++ isn't...<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize CharInfo.java<br/><ref>Committer's log entry: </ref>Additional "big scary" docs for Microsoft VJ++ workaround.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>10/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler XPathParser.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>10/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToHTML.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLTElementDef.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Add command-line switches for the options introduced at same time as DTM, to 
make testing those features easier.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor StylesheetPIHandler.java<br/><ref>Committer's log entry: </ref>Bugzilla 4575: Add the EOL character to the list of token delimiters.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
 IncrementalSAXSource_Xerces.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForFSB.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>11/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Use appropriate context class loader as done in JAXP's FactoryFinder;
 Added various new jars; added checkAntVersion()<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize HTMLEntities.res<br/><ref>Committer's log entry: </ref>Commented out mainly greek entities that Netscape seems not to handle.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize Encodings.java
 SerializerToHTML.java SerializerToText.java
 SerializerToXML.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>Don't set the ErrorHandler if it is already set.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>11/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Minor fix to JavaDoc for setRecursionLimit.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/operations Operation.java
 UnaryOperation.java<br/><ref>Committer's log entry: </ref>Bugzilla 4679: Accessors for left and right operands<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToHTML.java<br/><ref>Committer's log entry: </ref>Do not escape the percent '%' character anymore.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes LocPathIterator.java
 OneStepIterator.java PredicatedNodeTest.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 ClonerToResultTree.java ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>Bugzilla 4607; allow explicitly cloning namespace nodes rather than
 throwing exception.<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>11/07/2001<br/><ref>Removed: </ref>java/src/META-INF/services
 javax.xml.parsers.SAXParserFactory
 javax.xml.parsers.DocumentBuilderFactory<br/><ref>Committer's log entry: </ref>Remove services/javax.xml.parsers.* references; we assume parsers have their 
own<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>11/07/2001<br/><ref>Removed: </ref>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/><ref>Committer's log entry: </ref>Use a condensed copy of xml-commons sources instead of individual sources;
 remove xalan-specific copies of commons files<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/08/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
 java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>Bugzilla 4735: We should at least report an error when we overflow DTM 
addressing...<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor ProcessorInclude.java<br/><ref>Committer's log entry: </ref>Bugzilla 4355: Make sure that when finding out if a stylesheet imports 
itself, we use the resolved href.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>11/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath NodeSetDTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>Bugzilla 4344: discard attrs which don't have an element to belong to<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>Bugzilla 4344: more efficient.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan Version.java<br/><ref>Committer's log entry: </ref>D13 internal version number update<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>11/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>D13 internal version number update<br/><br/></li></ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D11">
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>09/05/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>09/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Minor cleanup and updates in preparation for extension function;
 note SAX portion isn't complete yet<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>09/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Update EnvironmentCheck service with SAX checking; better method organization;
 Add checkEnvironment to xalan: built-in Extensions class<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler Lexer.java<br/><ref>Committer's log entry: </ref>Bug 2140: Catch index out of bounds exception<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>Bug 2130: Check for null data to avoid NPE<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/templates ElemElement.java<br/><ref>Committer's log entry: </ref>Bug 3421: Issue an error if namespace attribute is used with an empty string 
in xsl:element<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemElement.java<br/><ref>Committer's log entry: </ref>Backing out this change. Some conformance tests need to be updated first<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemElement.java<br/><ref>Committer's log entry: </ref>Bug 3421: Issue an error if namespace
 attribute is used with an empty string in xsl:element<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemTemplateElement.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>09/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerFactory.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>09/13/2001<br/><ref>Modified: </ref>java/src/javax/xml/transform TransformerFactory.java
 java/src/org/apache/xml/dtm DTMManager.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>09/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath XPath.java<br/><ref>Committer's log entry: </ref>Fix Bugzilla 2637: documentation updates for constructor functionality
 PR:2637
 Submitted by:gthb@dimon.is<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemUse.java<br/><ref>Committer's log entry: </ref>Bug 2548: Combine attribute sets with the same name but process them in order 
of precedence.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes UnionPathIterator.java<br/><ref>Committer's log entry: </ref>Bug 3533: Check for null m_iterators before trying to use it.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer KeyRefIterator.java<br/><ref>Committer's log entry: </ref>Bugzilla 3618: Check cache before anything else when getting the next node in 
the iterator.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>09/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletException.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Bugzilla 2332: Implement getAttribute() method to return the values for 
incremental and optimize<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>09/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>Enable Attr.getOwnerElement()<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor StylesheetHandler.java
 java/src/org/apache/xalan/templates ElemLiteralResult.java<br/><ref>Committer's log entry: </ref>Bugzilla 1803: Handle version attribute on a litteral element.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>09/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>release 2.2.D11<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>09/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>release 2.2.D11<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLTSchema.java<br/><ref>Committer's log entry: </ref>Mark xsl:template as containing ordered elements. Fix for no error when 
xsl:param not first child of xsl:template<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemLiteralResult.java
 ElemTemplateElement.java Stylesheet.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>09/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath NodeSetDTM.java<br/><ref>Committer's log entry: </ref>Do not reorder or strip duplicate nodes when converting a DOM nodelist into a 
DTM nodelist<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java<br/><ref>Committer's log entry: </ref>Catch for unwrappered StopException (apparently not all parsers generate
 a SAXException wrapper).<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>10/01/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Creating the implied Namespace Node for xml:<br/><br/></li></ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D10">
<note>The SQL Extension library has been updated to work with DTM.</note>
<p> Core (Non-XSLTC) source code updates:</p><ul>
<li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>Update version for 2.2.D9 build<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>08/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java SQLDocument.java
 XConnection.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/15o2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql XConnection.java<br/><ref>Committer's log entry: </ref>Use defined constant DTMManager.IDENT_DTM_NODE_BITS for shifting DTM nodes, 
not hard coded value.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>Fix problem with resolving a relative URI from a processing instruction<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>Make sure base is not null before checking for its contents.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates FuncDocument.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLTSchema.java<br/><ref>Committer's log entry: </ref>Allow multiple iterations of xsl:with-param within an xsl:call-template or 
xsl:apply-template<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncCurrent.java<br/><ref>Committer's log entry: </ref>Call new XPathContext#getCurrentNodeList. Fixes
 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>08/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Removed debug flag
 Submitted by:John Gentilin<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>08/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java
 XConnection.java<br/><ref>Committer's log entry: </ref>Fixed Streaming Mode
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>08/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm DTM.java
 java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>added document registration and release events to the DTM interface
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Extensions.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath VariableStack.java
 java/src/org/apache/xpath/operations Variable.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XStringForChars.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/27/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc StripFilter.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToText.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by</ref> mmidy@apache.org<ref> on </ref>08/29/2001<br/><ref>Modified: </ref>
java/src/org/apache/xpath/compiler Lexer.java<br/><ref>Committer's log entry: </ref>Fix for Bugzilla 2684 StringIndexOutOfBounds Exception. Check if we are at the end of the pattern string.<br/><br/></li>
</ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D9">
<p> Core (Non-XSLTC) source code updates:</p>
<ul><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>2.2.D8<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>2.2.D8<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer NodeSortKey.java<br/><ref>Committer's log entry: </ref>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Just added some stuff to diagnose bugs for flavor th.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes DescendantIterator.java<br/><ref>Committer's log entry: </ref>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler Lexer.java<br/><ref>Committer's log entry: </ref>Resize the m_patternMap if m_patternMapSize exceeds the bounds.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Getting all (almost all) error message strings into the resource bundle<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/27/2001<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br/><ref>Committer's log entry: </ref>Accidentally added. Now deleting.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler OpMap.java<br/><ref>Committer's log entry: </ref>Throw real error instead of runtime error in getFirstPredicateOpPos
 for better error reporting.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes PredicatedNodeTest.java
 java/src/org/apache/xpath/compiler OpMap.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java SQLErrorDocument.java
 XConnection.java<br/><ref>Committer's log entry: </ref>Added the original pquery and streaming mode functionality
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/30/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/lib/sql DTMDocument.java<br/><ref>Committer's log entry: </ref>Added DTM Document, a common impl between SQLDocument and SQLErrorDocument
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes DescendantIterator.java
 WalkerFactory.java<br/><ref>Committer's log entry: </ref>Fix addresses http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=XalanJ2,
 and a whole class of related problems.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XNodeSet.java XObject.java
 java/src/org/apache/xpath/patterns StepPattern.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Add support for external scripts (ie, the src attribute on a script element)<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathContext.java
 java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIteratorForward.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Added Error Managment and javadocs
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/patterns StepPattern.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql XConnection.java<br/><ref>Committer's log entry: </ref>Update after building Unit Test's
 Submitted by: John Gentilin<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLTAttributeDef.java<br/><ref>Committer's log entry: </ref>Fix for Bugzilla 2930. Fix from Alexander Rudnev. Handle namespaced elements.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/02/2001<br/><ref>Modified: </ref>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/><ref>Added: </ref>java/src/org/apache/xpath/objects XNodeSetForDOM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/03/2001<br/><ref>Added: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Cutover to NamespaceSupport2, q.v.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>Continuing code review.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>08/03/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/lib PipeDocument.java<br/><ref>Committer's log entry: </ref>PipeDocument extension element (the pipeDocument method).<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath NodeSet.java NodeSetDTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm DTMAxisIterator.java
 java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
 DTMDefaultBaseIterators.java<br/><ref>Committer's log entry: </ref>Provide method for DTMAxisIterator to get the current root node
 of the iteration.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XObject.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes OneStepIterator.java<br/><ref>Committer's log entry: </ref>For the OneStepIterator(DTMAxisIterator iterator) constructor,
 initialize the node tests to DTMFilter.SHOW_ALL (duh).<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XObject.java<br/><ref>Added: </ref>java/src/org/apache/xpath/objects XObjectFactory.java<br/><ref>Committer's log entry: </ref>Move create methods from XObject to XObjectFactory, in response
 to cyclic build problems encountered with javac 1.1.8.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br/><ref>Committer's log entry: </ref>Remove m_hasStarted variable and associated assertion.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>Don't create caches unless used (which I don't think they are, in Xalan).<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br/><ref>Committer's log entry: </ref>Made _maxAncestors not static, as this is
 not compatible with 1.1.8 (reported by
 Gary Peskin).<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils NamespaceSupport2.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>Performance improvement; avoid scanning the same list twice.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/06/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Fix for bugzilla 1251. Make sure exceptions are thrown when we're on the main 
thread.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes AxesWalker.java
 WalkerFactory.java WalkingIteratorSorted.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates FuncFormatNumb.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java
 TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/09/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Change version for xalan2.2.D9 build<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm DTMManager.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
 DTMDocumentImpl.java DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncGenerateId.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath NodeSetDTM.java<br/><ref>Committer's log entry: </ref>Try to support getRoot. Fixes problem with TransformStateTest.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>08/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes WalkerFactory.java<br/><ref>Committer's log entry: </ref>Fix problem with duplicate nodes produced from a walking iterator<br/><br/></li></ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D8">
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Code Update
 Submitted by:John Gentilin<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Fixed DTM.NULL compile error<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TreeWalker2Result.java<br/><ref>Committer's log entry: </ref>Redundant test removed, possibly redundant code flagged for %REVIEW%<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ObjectArray.java
 SQLDocument.java<br/><ref>Committer's log entry: </ref>Project Update<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Oops.Should have been checked in as part of the IncrementalSAXSource cutover. 
Sorry!<br/><br/></li><li><ref>Committed by </ref>costin@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java build.xml
 java/src/org/apache/xml/dtm/ref
 IncrementalSAXSource_Filter.java
 java/src/org/apache/xml/utils/synthetic JavaUtils.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize
 WriterToUTF8Buffered.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer NodeSorter.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>2.2.D8<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>2.2.D8<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer NodeSortKey.java<br/><ref>Committer's log entry: </ref>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Just added some stuff to diagnose bugs for flavor th.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes DescendantIterator.java<br/><ref>Committer's log entry: </ref>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br/><br/></li></ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D7">
<p> Core (Non-XSLTC) source code updates:</p><ul><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToHTML.java
 SerializerToXML.java<br/><ref>Committer's log entry: </ref>Made m_maxCharacter, accumDefaultEscape,
 accumDefaultEntity, and m_isRawStack
 protected by request from Johannes Farrenkopf
 and Frank Nestel.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncNormalizeSpace.java<br/><ref>Committer's log entry: </ref>In executeCharsToContentHandler check first for
 DTM.NULL before trying to get the DTM.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>Fix bug reported by "Carsten Ziegeler" &lt;cziegeler@sundn.de&gt;.
 Test for this is whitespace23.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SuballocatedIntVector.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SuballocatedByteVector.java
 SuballocatedIntVector.java<br/><ref>Committer's log entry: </ref>Synch SuballocatedByteVector with changed SuballocatedIntVector<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java<br/><ref>Committer's log entry: </ref>Make accumDefaultEntity and accumDefaultEscape non-final.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes ChildTestIterator.java
 OneStepIterator.java
 java/src/org/apache/xpath/functions FuncExtFunction.java<br/><ref>Committer's log entry: </ref>Fix for John G. for the SQL extension: handle return types of
 DTM and DTMAxisIterator.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Extensions.java
 java/src/org/apache/xpath XPathContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes DescendantIterator.java<br/><ref>Committer's log entry: </ref>Fix problem with descendant-or-self and from root pattern. When from root, 
descedant or self was not recognized.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Extensions.java<br/><ref>Committer's log entry: </ref>Modify distinct() extension so that it no longer relies on DOMHelper which is 
deprecated but uses ExpressionContext.toString().<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>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/><ref>Added: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler Compiler.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>Now implements DocumentFragment.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>Updated version to 2.2.0.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Updated version to 2.2.0.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java PooledConnection.java
 QueryParameter.java XConnection.java<br/><ref>Added: </ref>java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
 ObjectArray.java SQLDocument.java
 SQLErrorDocument.java<br/><ref>Removed: </ref>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/><ref>Committer's log entry: </ref>First round of changes to port DOM mode to DTM Mode
 Submitted by: John Gentilin mailto://johng@apache.org<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>Check if locator property is set before trying to use locator fields<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/trace PrintTraceListener.java<br/><ref>Committer's log entry: </ref>Don't print locator message if locator is null<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br/><ref>Committer's log entry: </ref>In startDocument, run m_contentHandler.startDocument before you start the 
thread.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Call wait for initial events before the the transform is started.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br/><ref>Committer's log entry: </ref>Allow co_yield to be called after the parse has finished.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java
 SQLErrorDocument.java<br/><ref>Committer's log entry: </ref>Added setProperty and getSourceLocatorFor empty methods.<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerHandlerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions
 XSLProcessorContext.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToHTML.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql XConnection.java<br/><ref>Committer's log entry: </ref>Project Update
 Submitted by: John Gentilin mailto://johng@apache.org<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Project Update
 Submitted by: John gentilin mailto://johng@apache.org<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Fixup from previous check-in, defined new
 functions.
 Submitted by: John Gentilin mailto://johng@apache.org<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Project Update<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>reduced Attribute's for testing<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>07/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br/><ref>Committer's log entry: </ref>Minor hack to catch an attribute value being null.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/17/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>07/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br/><ref>Committer's log entry: </ref>OOps! Back out this last change. Old code on my machine!!!<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>07/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql SQLDocument.java<br/><ref>Committer's log entry: </ref>Fixed a few bugs, almost there
 Submitted by: John Gentilin mailto://johng@apache.org<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref CoroutineManager.java
 CoroutineSAXParser.java
 CoroutineSAXParser_Xerces.java<br/><ref>Added: </ref>java/src/org/apache/xml/dtm/ref IncrementalSAXSource.java
 IncrementalSAXSource_Filter.java
 IncrementalSAXSource_Xerces.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref CoroutineParser.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/dtm/ref DTMStringPool.java<br/><ref>Committer's log entry: </ref>doc.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>2.2.D7<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>2.2.D7<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>07/18/2001<br/><ref>Removed: </ref>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br/><ref>Committer's log entry: </ref>Obsolete<br/><br/></li></ul><note>This release includes no updates of the compatibility source code (now deprecated).</note>
</s2>
<s2 title="Changes for &xslt4j; 2.2.D6">
     <p><em>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.</em></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>
</s2>     
   <anchor name="dtm"/>
     <s2 title="Changes for &xslt4j; 2.2.D2">
     <p>This release includes the following changes:</p>
     <ul>
       <li>Deprecation of the <link idref="usagepatterns" anchor="compat">Xalan-Java 1 compatiblity API</link></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 (<link idref="dtm">DTM</link>).</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 <link anchor="bugs">bugs</link>).</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>&xslt4j; implements two DTM performance features that you can control with the TransformerFactory
<jump href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String, java.lang.Object)">setAttribute()</jump>
method. See <link idref="dtm" anchor="settings">DTM performance settings</link></p>
     </s2>
     <s2 title="Changes for &xslt4j; 2.1.0">
     <p>This release includes a number of bug fixes to &xslt4j; 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>
<!--This XML fragment contains a list of source code updates to place in an <s2> section of readme.xml--><p>Core source code updates:</p><ul><li><ref>Committed by </ref>costin@apache.org<ref> on </ref>03/16/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Renamed "assert()" to "assertion()".

 Assert can be a keyword, and brake the compilation.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer KeyWalker.java<br/><ref>Committer's log entry: </ref>Throw an error message if the key name in a key function was not defined<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>03/20/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Utility class to check your JVM environment for common problems<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>03/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Added more .jar sizes to jarVersions listing<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>Minor tweak to the javadoc.<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>reset() versus setLength(0).<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemForEach.java<br/><ref>Committer's log entry: </ref>Fix for bug# 1116, getMatchedTemplate throws ClassCastException.
 Don't push template unless it is a xsl:template.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/26/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates OutputProperties.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/27/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/transformer TransformSnapshot.java
 TransformSnapshotImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 ProcessorStylesheetElement.java
 ProcessorTemplateElem.java StylesheetHandler.java
 XSLTElementDef.java XSLTElementProcessor.java
 XSLTSchema.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions MethodResolver.java<br/><ref>Committer's log entry: </ref>Code cleanup submitted by Art Welch &lt;art_w@EASTPOINT.COM&gt;.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils TreeWalker.java<br/><ref>Committer's log entry: </ref>Add locator support to TreeWalker<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 QueuedStartElement.java<br/><ref>Committer's log entry: </ref>Small fix made for getCurrentNode.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>04/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils TreeWalker.java<br/><ref>Committer's log entry: </ref>Commented out extra call to getData()... this could be a big performance
 improvement for some stylesheets.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>Additional support for tooling. Allow tools to take a snapshot of context and 
restart execution at that point.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/10/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Misc stuff left out from previous check in<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncCurrent.java<br/><ref>Committer's log entry: </ref>Don't assume that the object returned by getSubContextList() is a 
PredicatedNodeTest object.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/11/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>04/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath XPath.java<br/><ref>Committer's log entry: </ref>Fix Bugzilla bug:
 PR: 1106
 Submitted by: elharo@metalab.unc.edu<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>04/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql QueryParameter.java
 SQLExtensionError.java XConnection.java<br/><ref>Committer's log entry: </ref>Minor Javadoc updates (add @author name, remove declared but unthrown @throws)<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>04/18/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Support for Streamable Mode- John Gentilin<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/objects XObject.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions MethodResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Fix copy/paste error. Want to use TransformerFactoryImpl's class loader.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>04/24/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformSnapshotImpl.java<br/><ref>Committer's log entry: </ref>Keep a copy of current contextNodeList is there is one<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>04/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br/><ref>Committer's log entry: </ref>Added checkDirForJars() which checks java.ext.dirs as well now<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>04/26/2001<br/><ref>Added: </ref>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/><ref>Committer's log entry: </ref>Add package.html for each package in javax.xml.transform.<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>04/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/stree DocImpl.java<br/><ref>Committer's log entry: </ref>Fix for #1561<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>04/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncExtFunction.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>05/03/2001<br/><ref>Modified: </ref>java/src/javax/xml/transform/stream StreamResult.java
 StreamSource.java<br/><ref>Committer's log entry: </ref>Small fix to avoid file:////path that may fail on some JDK.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>05/04/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql package.html<br/><ref>Committer's log entry: </ref>Preliminary updates for John G's work.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>05/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Check for a null contextNodeList before returning its clone<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>05/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/stree StreeDOMBuilder.java<br/><ref>Committer's log entry: </ref>Set the element's level correctly, before we process attributes.<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>05/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Updated version number to 2.1.0<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>05/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>Updated version number to 2.1.0<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/functions FuncExtFunction.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>05/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLTSchema.java<br/><ref>Committer's log entry: </ref>Set the correct order of xsl:include elements<br/><br/></li><li><ref>Committed by </ref>johng@apache.org<ref> on </ref>05/13/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Updates Javadocs
 Submitted by:John Gentilin mailto://johnglinux@eyecatching.com<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Correct typo introduced in revision 1.30 causing problems with transforms on 
Unix platforms.<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemChoose.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>05/15/2001<br/><ref>Modified: </ref>java/src/javax/xml/parsers DocumentBuilderFactory.java
 SAXParserFactory.java
 java/src/javax/xml/transform TransformerFactory.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>05/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions ExtensionHandler.java
 ExtensionHandlerGeneral.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>05/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 CompilingStylesheetHandler.java
 java/src/org/apache/xalan/serialize SerializerFactory.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>05/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/stree SourceTreeHandler.java
 java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>Gary L Peskin &lt;garyp@firstech.com&gt;<ref> on </ref>05/15/2001<br/><ref>Committer's log entry: </ref>
&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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>05/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ExtensionError.java<br/><ref>Committer's log entry: </ref>Fixed "conflict" in javadoc comments.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>05/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql package.html<br/><ref>Committer's log entry: </ref>Editing pass.<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>05/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletOutputHandler.java<br/><ref>Committer's log entry: </ref>bug # 1406 fixed, omit xml header implemented<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>05/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Update Javadoc and remove commented out reference to properties file
 PR:Bugzilla1627<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>05/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils TreeWalker.java
 SystemIDResolver.java<br/><ref>Committer's log entry: </ref>Catch SecurityException whenever accessing System.getProperty("user.dir");
 minor javadoc update<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>05/21/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>05/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates OutputProperties.java<br/><ref>Committer's log entry: </ref>Catch SecurityException as needed
 PR: Bugzilla1258<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates OutputProperties.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates OutputProperties.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>05/21/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Modify getResourceAsStream calls to use the contextClassLoader, if available.
 This is a temporary fix until we can centralize this function.<br/><br/></li></ul><note>This release includes no updates of the compatibility source code.</note>
 </s2>
 
<s2 title="Changes for &xslt4j; 2.0.1">
<p>This release includes a number of bug fixes to the &xslt4j; and TrAX core and Xalan-Java 1 compability API. We have also</p>
<ul>
  <li>Entered all known &xslt4j; 2 <link anchor="bugs">bugs</link> in the Apache Bugzilla database<br/><br/></li>
  <li>Added support for using custom URIResolver, EntityResolver, and ContentHandler implementations with the <link
      idref="commandline">command-line utility</link><br/><br/></li> 
  <li>Upgraded from Ant 1.2 to Ant 1.3 for our <link anchor="build">builds</link> (the new ant.jar is in the bin directory).</li>
</ul>
<p>Core source code updates:</p>
<ul>
<li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes ChildWalkerMultiStep.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>Fixes for exceptions being thrown that weren't being passed through
 the error listener.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes FollowingWalker.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes PrecedingWalker.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath SourceTreeManager.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/stree SourceTreeHandler.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/axes WalkerFactory.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor StylesheetPIHandler.java
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Patch for Dmitri IIyin to use the specified URIResolver.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemNumber.java<br/><ref>Committer's log entry: </ref>Number Expression should be evaluated then rounded up.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Create a document fragment for the output node, for -flavor d2d.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler Compiler.java<br/><ref>Committer's log entry: </ref>Better error message when quo is used.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/13/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Remove extra method/call to TransformerImpl.executeChildTemplates()<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/patterns NodeTest.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ColumnData.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>02/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/extensions MethodResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ColumnHeader.java
 RowSet.java XStatement.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/compiler XPathParser.java<br/><ref>Committer's log entry: </ref>Check for null token before checking if it is a letter<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>02/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib Extensions.java<br/><ref>Committer's log entry: </ref>Correct implementation of string value of a node.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>02/21/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>Added experimental usage metatag to all classes in this package,
 and an explanatory note to package.html.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/stree ElementImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java
 java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br/><ref>Committer's log entry: </ref>Implement DeclHandler for identity transforms<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>02/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>02/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTInfo.properties<br/><ref>Committer's log entry: </ref>Changed version to 2.0.1<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>02/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br/><ref>Committer's log entry: </ref>Changed version to 2.0.1<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>02/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTErrorResources.java<br/><ref>Committer's log entry: </ref>Update text of error messages
 Submitted by: Andreas Zehnpfund<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>02/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Update printArgOptions() with better text and to better reflect actual
 options that are currently supported; catch missing -IN argument<br/><br/></li><li><ref>Committed by </ref>jkesselm@apache.org<ref> on </ref>03/05/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/06/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>03/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemParam.java
 java/src/org/apache/xpath Arg.java VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>garyp@apache.org<ref> on </ref>03/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils FastStringBuffer.java<br/><ref>Committer's log entry: </ref>Correct operation when length of content to be appended is zero.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToXML.java<br/><ref>Committer's log entry: </ref>Fix closing out doctype declaration<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>Change SystemIdResolver to default to user.dir if the base URI is null<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>03/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java
 java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer
 TransformerIdentityImpl.java<br/><ref>Committer's log entry: </ref>Check if there is a DeclHandler before calling it.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils WrappedRuntimeException.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemAttribute.java
 ElemElement.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils SystemIDResolver.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer TransformerImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/transformer QueuedEvents.java
 QueuedStartElement.java ResultTreeHandler.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize SerializerToHTML.java<br/><ref>Committer's log entry: </ref>Applied patches from dmitri.ilyin@memiq.com (Dmitri Ilyin)
 from http://nagoya.apache.org/bugzilla/show_bug.cgi?id=705.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath XPathAPI.java<br/><ref>Committer's log entry: </ref>Applied patch submitted by nboyd@atg.com (Norris Boyd)
 at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=702.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/serialize Encodings.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates ElemTemplateElement.java
 StylesheetRoot.java<br/><ref>Committer's log entry: </ref>Minor changes to better bottleneck throwing of Runtime exceptions
 during processing.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor
 TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql XConnection.java
 XStatement.java<br/><ref>Added: </ref>java/src/org/apache/xalan/lib/sql ConnectionPool.java
 DefaultConnectionPool.java ExtensionError.java
 PooledConnection.java QueryParameter.java
 SQLExtensionError.java XConnectionPoolManager.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/11/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath/patterns NodeTest.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>03/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ExtensionError.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils TreeWalker.java<br/><ref>Committer's log entry: </ref>Added back in the TreeWalker(ContentHandler contentHandler)
 constructor, because I'm worried I'll break more dependent code.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/res XSLTErrorResources.java
 java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>Implement new arguments for the command line interface: URIResolver, 
EntityResolver and ContentHandler<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/templates FuncFormatNumb.java<br/><ref>Committer's log entry: </ref>Fix error message to say that 2 or 3 arguments are required.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/processor ProcessorLRE.java
 java/src/org/apache/xalan/res XSLTErrorResources.java<br/><ref>Committer's log entry: </ref>Better error message for missing or incorrect XSLT namespace declaration in a 
stylesheet<br/><br/></li><li><ref>Committed by </ref>garyp@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>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/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xpath VariableStack.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>03/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>costin@apache.org<ref> on </ref>03/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xml/utils StringVector.java<br/><ref>Committer's log entry: </ref>Added missing @serial Javadoc tags.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/lib/sql ConnectionPool.java
                        DefaultConnectionPool.java ExtensionError.java
                        SQLExtensionError.java XConnection.java
                        XConnectionPoolManager.java XStatement.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/02/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java
 XSLTResultTarget.java<br/><ref>Committer's log entry: </ref>Implement some more methods for compatibility<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>02/02/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br/><ref>Committer's log entry: </ref>Fixed javadoc for api that was just added back.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>02/02/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTResultTarget.java<br/><ref>Committer's log entry: </ref>Fixed javadoc for api that was just added back.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/02/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br/><ref>Committer's log entry: </ref>Fix problem with calling the processor with a liaison<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/02/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/12/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br/><ref>Committer's log entry: </ref>Set system id in stylesheet handler<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/14/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br/><ref>Committer's log entry: </ref>Call local setSystemId.<br/><br/></li><li><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/15/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br/><ref>Committer's log entry: </ref>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><ref>Committed by </ref>mmidy@apache.org<ref> on </ref>02/22/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xslt StylesheetRoot.java<br/><ref>Committer's log entry: </ref>Add getOutputMethod API.<br/><br/></li><li><ref>Committed by </ref>dleslie@apache.org<ref> on </ref>03/07/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xpath/xml
 XMLParserLiaisonDefault.java<br/><ref>Committer's log entry: </ref>Put in Apache copyright.<br/><br/></li><li><ref>Committed by </ref>sboag@apache.org<ref> on </ref>03/13/2001<br/><ref>Modified: </ref>java/compat_src/org/apache/xalan/xpath/xml TreeWalker.java
 java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br/><ref>Committer's log entry: </ref>Made changes for change to API for XalanJ2 TreeWalker, which
 now requires that the DOM helper be created by the caller.</li>
 </ul>
</s2>

<s2 title="Changes for &xslt4j; version 2.0.0">
<p>Release 2.0 includes several bug fixes to the &xslt4j; and TrAX core and to the Xalan-Java 1 compatibility API. We also updated bsf.jar to the <resource-ref idref="bsf"/> release candidate 2.2, which fixes a bug running JPython extensions.</p>
<p><em>Core bug fixes:</em></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 <link idref="usagepatterns" anchor="serialize">Serializing output</link>) 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><em>Bug fixes in the <link idref="usagepatterns" anchor="compat">Xalan-Java 1 compatibility API</link>:</em></p>
<ul>
  <li>Fixed ProblemListener (for processing error messages) to derive from &xslt4j; 2 ErrorHandler.<br/><br/></li>
  <li>Fixed evaluation of stylesheet string parameters to conform to &xslt4j; 1 behavior (expressions for &xslt4j; 1 vs. String objects 
  for &xslt4j; 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>
</s2>

<s2 title="Changes for &xslt4j; version 2.0.D07">
<p>&xslt4j; 2.0.D07 incorporates a <link idref="usagepatterns" anchor="compat">Xalan-Java 1 compatibility jar</link>, 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>
</s2>
<s2 title="Changes for &xslt4j; version 2.0.D06">
<p>We have fixed the bugs reported in &xslt4j; 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, &xslt4j; 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<ref>Xxx</ref> to SerializerTo<ref>Xxx</ref>. See 
<jump href="apidocs/org/apache/xalan/serialize/package-summary.html">Package org.apache.xalan.serialize</jump>.<br/><br/></li>
<li>Improved debugging support in a number of areas.</li>
</ul>
</s2>
<s2 title="Changes for &xslt4j; version 2.0.D05">
<p>All of the bugs reported in &xslt4j; 2.0.D01 have been fixed. The remainder of this section discusses two changes that we believe are of particular importance:</p>
<p><em>TrAX</em></p>
<p>The Transformation API for XML (TrAX) that &xslt4j2; implements has undergone substantial revisions since the release of &xslt4j; 2.0.D01. TrAX has joined the Java API for XML Parsing (JAXP) as part of the Sun&reg; <resource-ref idref="jsr063"/>. 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 <link idref="trax">TrAX (Transformation API for XML)</link>, and review <link idref="usagepatterns">Usage Patterns</link>.</p>
<anchor name="outputprops"/><p><em>Output properties</em></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=<ref>n</ref></code></p>
<note>The colon after the "http" protocol must be escaped.</note>
<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>
<source>&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;</source>
<p>=== myentities.ent ===</p>
<source>quot 34
amp 38
lt 60
gt 62
lala 125</source>
<p>The output is:</p>
<source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;out&gt;&amp;lala;&lt;/out&gt;</source>
<p>See also <link idref="usagepatterns" anchor="outputprops">Setting output properties in your stylesheets</link>.</p>
</s2>
</s1>
