[
https://issues.apache.org/jira/browse/XALANJ-2438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18014459#comment-18014459
]
Joe Kesselman edited comment on XALANJ-2438 at 8/18/25 12:09 AM:
-----------------------------------------------------------------
Current interpreted (2.7.3) output does match the given .out file for the
standalone PredicateInKey test. No console messages seen.
I do get error messages from XSLTC, running from the xalan-test directory:
java -cp ../xalan-java/build/{*}:../xalan-java/lib/{*}
org.apache.xalan.xslt.Process -in PredicateInKey.xml -xsl PredicateInKey.xsl
-XSLTC
Haven't tried all the other tests, or sanity checked the proposed patch. But at
least this confirms the issue appears to still be live.
was (Author: JIRAUSER285361):
Current interpreted (2.7.3) output does match the given .out file. No console
messages seen.
I do get error messages from XSLTC, running from the xalan-test directory:
java -cp ../xalan-java/build/*:../xalan-java/lib/*
org.apache.xalan.xslt.Process -in PredicateInKey.xml -xsl PredicateInKey.xsl
-XSLTC
> [PATCH] XSLTC ignores XPath predicates in xsl:key elements
> ----------------------------------------------------------
>
> Key: XALANJ-2438
> URL: https://issues.apache.org/jira/browse/XALANJ-2438
> Project: XalanJ2
> Issue Type: Bug
> Components: XSLTC
> Affects Versions: The Latest Development Code
> Environment: Linux and Windows XP with Sun JRE 1.5.0_14, 1.5.0_15,
> 1.6.0_04 and 1.6.0_05
> Reporter: Helge Schulz
> Priority: Blocker
> Fix For: The Latest Development Code
>
> Attachments: PredicateInKey-XSLT-Test-1.1.jar,
> PredicateInKey-XSLT-Test-1.2.jar, PredicateInKey-XSLT-Test-1.3.jar,
> PredicateInKey-XSLT-Test.jar, PredicateInKey-Xalan-SVN-r889881.patch,
> PredicateInKey.out, PredicateInKey.xml, PredicateInKey.xsl
>
>
> The Xalan XSLT compiler (XSLTC) ignores XPath predicates in xsl:key
> elements since the class 'org.apache.xalan.xsltc.compiler.Stylesheet'
> was rearranged in august 2003 to reorder the compilation of top level
> XSLT elements (including keys) to respect dependencies between global
> XSLT variables and keys. Method 'compileTopLevel' was changed to emit
> code also for key elements and not emit code calling the method generated
> by 'compileBuildKeys'. For this reason the byte code for each key element
> is generated twice: First time into generated method 'buildKeys' from
> 'compileBuildKeys' and second time into generated method 'topLevel'
> from 'compileTopLevel'. Method 'buildKeys' is still necessary, because
> it is called by the XSLT 'document' function, if additional input
> documents are loaded later.
> Unfortunately the translate method of some XPath elements expected to
> be called only once and they remove sub elements while their first execution.
> So all XPath predicates get lost in class
> 'org.apache.xalan.xsltc.compiler.FilterExpr'
> and 'org.apache.xalan.xsltc.compiler.Step' by a remove operation on
> the '_predicates' container while the execution from 'compileBuildKeys'.
> So 'compileTopLevel' generates wrong code for all key elements containing
> predicates in their XPath expressions.
> The attached patch changes the 'FilterExpr' and 'Step' class to use an
> index variable to determine the current predicate and to not remove them.
> This patch was tested with the current Subversion version of Xalan
> (last change of Xalan tree in revision 584164) and with Sun JDK 1.5.0_14,
> 1.5.0_15, 1.6.0_04 and 1.6.0_05.
> This bug exists also in Sun JRE 1.6 (1.6.0 up to 1.6.0_05) and JRE 1.5
> (since 1.5.0_12 up to 1.5.0_15) in classes
> 'com.sun.org.apache.xalan.internal.xsltc.compiler.FilterExpr' and
> 'com.sun.org.apache.xalan.internal.xsltc.compiler.Step'. The attached
> test JAR file contains also patches for these versions and fixes in form
> of JAR files to be installed into '../jre/lib/endorsed' directories of
> Sun JRE installations. The last Sun JRE version with correct handling
> of xls:key elements is 1.5.0_11.
> Please add the attached test files to the Xalan test suite. I have
> released them under Apache license version 2.0.
> Helge Schulz - OpenSHORE.org
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]