<?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: history.xml 478654 2006-11-23 19:52:02Z minchau $ -->
<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="downloads">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 idref="jira">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 idref="jira">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 idref="builds">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 Xalan-Java 1 compatibility API:</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>
