You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mu...@apache.org on 2025/06/27 17:26:24 UTC

(xalan-java) branch xalan-j_xslt3.0_mvn updated: committing implementation improvements for xpath 3.1 function fn:function-arity

This is an automated email from the ASF dual-hosted git repository.

mukulg pushed a commit to branch xalan-j_xslt3.0_mvn
in repository https://gitbox.apache.org/repos/asf/xalan-java.git


The following commit(s) were added to refs/heads/xalan-j_xslt3.0_mvn by this push:
     new 9aeff7be2 committing implementation improvements for xpath 3.1 function fn:function-arity
9aeff7be2 is described below

commit 9aeff7be250375189769a05e62409d7b8e5dda66
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Fri Jun 27 22:55:55 2025 +0530

    committing implementation improvements for xpath 3.1 function fn:function-arity
---
 .../apache/xalan/templates/FuncFormatNumber.java   |  2 +-
 .../org/apache/xpath/compiler/XPathParser.java     |  2 +-
 .../org/apache/xpath/composite/XPathIfExpr.java    | 38 ++++++++++----------
 .../org/apache/xpath/composite/XPathLetExpr.java   |  4 +--
 .../java/org/apache/xpath/functions/FuncAbs.java   |  2 +-
 .../org/apache/xpath/functions/FuncBaseUri.java    |  2 +-
 .../org/apache/xpath/functions/FuncCeiling.java    |  2 +-
 .../java/org/apache/xpath/functions/FuncData.java  |  2 +-
 .../apache/xpath/functions/FuncDocumentUri.java    |  2 +-
 .../java/org/apache/xpath/functions/FuncFloor.java |  2 +-
 .../apache/xpath/functions/FuncFunctionArity.java  | 42 ++++++++--------------
 .../org/apache/xpath/functions/FuncNumber.java     |  2 +-
 .../java/org/apache/xpath/functions/FuncRound.java |  2 +-
 .../org/apache/xpath/functions/FuncString.java     |  2 +-
 .../java/org/apache/xpath/functions/Function.java  | 34 ++++++------------
 .../xpath/functions/XPathDynamicFunctionCall.java  | 17 +++++----
 .../XSL3ConstructorOrExtensionFunction.java        | 12 -------
 .../xpath/functions/XSL3FunctionService.java       |  4 +--
 .../apache/xpath/functions/math/FuncMathAcos.java  |  2 +-
 .../apache/xpath/functions/math/FuncMathAsin.java  |  2 +-
 .../apache/xpath/functions/math/FuncMathAtan.java  |  2 +-
 .../apache/xpath/functions/math/FuncMathAtan2.java |  2 +-
 .../apache/xpath/functions/math/FuncMathCos.java   |  2 +-
 .../apache/xpath/functions/math/FuncMathExp.java   |  2 +-
 .../apache/xpath/functions/math/FuncMathExp10.java |  2 +-
 .../apache/xpath/functions/math/FuncMathLog.java   |  2 +-
 .../apache/xpath/functions/math/FuncMathLog10.java |  2 +-
 .../apache/xpath/functions/math/FuncMathPi.java    |  2 +-
 .../apache/xpath/functions/math/FuncMathPow.java   |  2 +-
 .../apache/xpath/functions/math/FuncMathSin.java   |  2 +-
 .../apache/xpath/functions/math/FuncMathSqrt.java  |  2 +-
 .../apache/xpath/functions/math/FuncMathTan.java   |  2 +-
 .../xpath/functions/string/FuncAnalyzeString.java  |  7 ++++
 .../functions/string/FuncCodePointsToString.java   |  7 ++++
 .../xpath/functions/string/FuncCodepointEqual.java |  7 ++++
 .../apache/xpath/functions/string/FuncCompare.java |  7 ++++
 .../apache/xpath/functions/string/FuncConcat.java  | 13 ++++++-
 .../xpath/functions/string/FuncContains.java       |  7 ++++
 .../xpath/functions/string/FuncContainsToken.java  |  9 +++--
 .../xpath/functions/string/FuncEndsWith.java       |  7 ++++
 .../xpath/functions/string/FuncLowerCase.java      |  9 ++++-
 .../apache/xpath/functions/string/FuncMatches.java |  9 ++++-
 .../xpath/functions/string/FuncNormalizeSpace.java |  7 ++++
 .../apache/xpath/functions/string/FuncReplace.java |  7 ++++
 .../xpath/functions/string/FuncStartsWith.java     |  7 ++++
 .../xpath/functions/string/FuncStringJoin.java     |  7 ++++
 .../xpath/functions/string/FuncStringLength.java   |  7 ++++
 .../functions/string/FuncStringToCodepoints.java   |  7 ++++
 .../xpath/functions/string/FuncSubstring.java      |  7 ++++
 .../xpath/functions/string/FuncSubstringAfter.java |  7 ++++
 .../functions/string/FuncSubstringBefore.java      |  7 ++++
 .../xpath/functions/string/FuncTokenize.java       |  9 ++++-
 .../xpath/functions/string/FuncTranslate.java      |  7 ++++
 .../xpath/functions/string/FuncUpperCase.java      |  9 ++++-
 .../w3c/xslt3/result/attr/_as-test-set_result.xml  |  2 +-
 .../w3c/xslt3/result/attr/_avt-test-set_result.xml |  2 +-
 .../xslt3/result/attr/_match-test-set_result.xml   |  2 +-
 .../xslt3/result/attr/_select-test-set_result.xml  |  2 +-
 .../result/decl/_attribute-set-test-set_result.xml |  2 +-
 .../result/decl/_character-map-test-set_result.xml |  2 +-
 .../result/decl/_function-test-set_result.xml      |  2 +-
 .../result/decl/_variable-test-set_result.xml      |  2 +-
 .../xslt3/result/expr/_axes-test-set_result.xml    |  2 +-
 .../result/expr/_castable-test-set_result.xml      |  2 +-
 .../result/expr/_expression-test-set_result.xml    |  2 +-
 .../w3c/xslt3/result/expr/_for-test-set_result.xml |  2 +-
 .../_higher-order-functions-test-set_result.xml    |  2 +-
 .../xslt3/result/expr/_math-test-set_result.xml    |  2 +-
 .../result/expr/_nodetest-test-set_result.xml      |  2 +-
 .../xslt3/result/expr/_path-test-set_result.xml    |  2 +-
 .../result/expr/_predicate-test-set_result.xml     |  2 +-
 .../result/fn/_deep-equal-test-set_result.xml      |  2 +-
 .../result/fn/_format-number-test-set_result.xml   |  2 +-
 .../w3c/xslt3/result/fn/_key-test-set_result.xml   |  2 +-
 .../xslt3/result/fn/_position-test-set_result.xml  |  2 +-
 .../w3c/xslt3/result/fn/_root-test-set_result.xml  |  2 +-
 .../insn/_analyze-string-test-set_result.xml       |  2 +-
 .../insn/_apply-templates-test-set_result.xml      |  2 +-
 .../result/insn/_attribute-test-set_result.xml     |  2 +-
 .../result/insn/_call-template-test-set_result.xml |  2 +-
 .../xslt3/result/insn/_choose-test-set_result.xml  |  2 +-
 .../xslt3/result/insn/_copy-test-set_result.xml    |  6 ++--
 .../xslt3/result/insn/_element-test-set_result.xml |  2 +-
 .../insn/_for-each-group-test-set_result.xml       |  2 +-
 .../xslt3/result/insn/_iterate-test-set_result.xml |  2 +-
 .../result/insn/_sequence-test-set_result.xml      |  2 +-
 .../xslt3/result/insn/_sort-test-set_result.xml    |  2 +-
 .../w3c/xslt3/result/insn/_try-test-set_result.xml |  2 +-
 .../result/insn/_xsl-document-test-set_result.xml  |  2 +-
 .../xslt3/result/misc/_regex-test-set_result.xml   |  2 +-
 .../xslt3/result/type/_boolean-test-set_result.xml |  2 +-
 .../xslt3/result/type/_date-test-set_result.xml    |  2 +-
 .../xslt3/result/type/_node-test-set_result.xml    |  2 +-
 .../xslt3/result/type/_string-test-set_result.xml  |  2 +-
 .../result/w3c_xslt3_testsuite_xalan-j_result.xml  |  2 +-
 95 files changed, 291 insertions(+), 166 deletions(-)

diff --git a/src/main/java/org/apache/xalan/templates/FuncFormatNumber.java b/src/main/java/org/apache/xalan/templates/FuncFormatNumber.java
index 4eb569469..a1a555039 100644
--- a/src/main/java/org/apache/xalan/templates/FuncFormatNumber.java
+++ b/src/main/java/org/apache/xalan/templates/FuncFormatNumber.java
@@ -47,7 +47,7 @@ public class FuncFormatNumber extends Function3Args
      * Class constructor.
      */
     public FuncFormatNumber() {
-  	   m_arityArr = new Short[] {2, 3}; 
+  	   m_defined_arity = new Short[] {2, 3}; 
     }
 
   /**
diff --git a/src/main/java/org/apache/xpath/compiler/XPathParser.java b/src/main/java/org/apache/xpath/compiler/XPathParser.java
index 4c25cddc9..3a88ad6ae 100644
--- a/src/main/java/org/apache/xpath/compiler/XPathParser.java
+++ b/src/main/java/org/apache/xpath/compiler/XPathParser.java
@@ -2596,7 +2596,7 @@ public class XPathParser
     	 }
       }
       
-      ifExpr.setBranchConditionXPathStr(branchConditionXPathExprStr);
+      ifExpr.setIfConditionXPathStr(branchConditionXPathExprStr);
       ifExpr.setThenExprXPathStr(thenXPathExprStr);
       ifExpr.setElseExprXPathStr(elseXPathStr);
       
diff --git a/src/main/java/org/apache/xpath/composite/XPathIfExpr.java b/src/main/java/org/apache/xpath/composite/XPathIfExpr.java
index 347ac375e..cfb5ed62b 100644
--- a/src/main/java/org/apache/xpath/composite/XPathIfExpr.java
+++ b/src/main/java/org/apache/xpath/composite/XPathIfExpr.java
@@ -48,7 +48,7 @@ public class XPathIfExpr extends Expression {
     
     private static final long serialVersionUID = 4057572946055830336L;
 
-    private String m_branchConditionXPathStr;
+    private String m_ifConditionXPathStr;
     
     private String m_thenExprXPathStr;
     
@@ -61,12 +61,12 @@ public class XPathIfExpr extends Expression {
     
     private int m_globals_size;
 
-    public String getBranchConditionXPathStr() {
-        return m_branchConditionXPathStr;
+    public String getIfConditionXPathStr() {
+        return m_ifConditionXPathStr;
     }
 
-    public void setBranchConditionXPathStr(String branchConditionXPathStr) {
-        this.m_branchConditionXPathStr = branchConditionXPathStr;
+    public void setIfConditionXPathStr(String ifConditionXPathStr) {
+        this.m_ifConditionXPathStr = ifConditionXPathStr;
     }
 
     public String getThenExprXPathStr() {
@@ -105,31 +105,31 @@ public class XPathIfExpr extends Expression {
        }
        
        if (prefixTable != null) {
-          m_branchConditionXPathStr = XslTransformEvaluationHelper.replaceNsUrisWithPrefixesOnXPathStr(
-                                                                                    m_branchConditionXPathStr, prefixTable);
+          m_ifConditionXPathStr = XslTransformEvaluationHelper.replaceNsUrisWithPrefixesOnXPathStr(
+                                                                                    m_ifConditionXPathStr, prefixTable);
        }
        
-       XPath branchConditionXPath = new XPath(m_branchConditionXPathStr, srcLocator, xctxt.getNamespaceContext(), 
+       XPath ifConditionXPath = new XPath(m_ifConditionXPathStr, srcLocator, xctxt.getNamespaceContext(), 
                                                                                                  XPath.SELECT, null);
        if (m_vars != null) {
-          branchConditionXPath.fixupVariables(m_vars, m_globals_size);
+          ifConditionXPath.fixupVariables(m_vars, m_globals_size);
        }
        
-       XObject branchConditionXPathResult = branchConditionXPath.execute(xctxt, contextNode, xctxt.getNamespaceContext());       
+       XObject ifConditionXPathResult = ifConditionXPath.execute(xctxt, contextNode, xctxt.getNamespaceContext());       
        
-       boolean branchConditionEvalResult = false;
-       boolean eagerBranchConditionCheck = false;
-       if ((branchConditionXPathResult instanceof XSString) || (branchConditionXPathResult instanceof XSAnyURI) || 
-    		                                                   (branchConditionXPathResult instanceof XSUntypedAtomic)) {
-    	   eagerBranchConditionCheck = true;
-    	   XSAnyType xsAnyType = (XSAnyType)branchConditionXPathResult;
+       boolean ifConditionEvalResult = false;
+       boolean eagerIfConditionCheck = false;
+       if ((ifConditionXPathResult instanceof XSString) || (ifConditionXPathResult instanceof XSAnyURI) || 
+    		                                               (ifConditionXPathResult instanceof XSUntypedAtomic)) {
+    	   eagerIfConditionCheck = true;
+    	   XSAnyType xsAnyType = (XSAnyType)ifConditionXPathResult;
     	   String strVal = xsAnyType.stringValue();
     	   if ((strVal != null) && (strVal.length() > 0)) {
-    		   branchConditionEvalResult = true;  
+    		   ifConditionEvalResult = true;  
     	   }
        }
        
-       if ((eagerBranchConditionCheck && branchConditionEvalResult) || (!eagerBranchConditionCheck && branchConditionXPathResult.bool())) {
+       if ((eagerIfConditionCheck && ifConditionEvalResult) || (!eagerIfConditionCheck && ifConditionXPathResult.bool())) {
            if (prefixTable != null) {
               m_thenExprXPathStr = XslTransformEvaluationHelper.replaceNsUrisWithPrefixesOnXPathStr(
                                                                                         m_thenExprXPathStr, prefixTable);
@@ -149,7 +149,7 @@ public class XPathIfExpr extends Expression {
               evalResult = thenExprXPath.execute(xctxt, contextNode, xctxt.getNamespaceContext());
            }
        }
-       else if ((eagerBranchConditionCheck && !branchConditionEvalResult) || (!eagerBranchConditionCheck && !branchConditionXPathResult.bool())) {
+       else if ((eagerIfConditionCheck && !ifConditionEvalResult) || (!eagerIfConditionCheck && !ifConditionXPathResult.bool())) {
            if (prefixTable != null) {
               m_elseExprXPathStr = XslTransformEvaluationHelper.replaceNsUrisWithPrefixesOnXPathStr(m_elseExprXPathStr, 
                                                                                                           prefixTable);
diff --git a/src/main/java/org/apache/xpath/composite/XPathLetExpr.java b/src/main/java/org/apache/xpath/composite/XPathLetExpr.java
index 09d628bd0..f812e7c9a 100644
--- a/src/main/java/org/apache/xpath/composite/XPathLetExpr.java
+++ b/src/main/java/org/apache/xpath/composite/XPathLetExpr.java
@@ -153,7 +153,7 @@ public class XPathLetExpr extends Expression {
         		  Function function = funcTable.getFunction(Integer.valueOf(funcIdStr));
         		  function.setLocalName(funcLocalName);
         		  function.setNamespace(funcNamespace);
-        		  function.setArity(funcArity);
+        		  function.setDefinedArity(new Short[] { funcArity });
         		  varBindingEvalResult = new XObject(function);
         	  }
         	  else if (xpathNamedFuncRef.getXslStylesheetFunction() != null) {
@@ -163,7 +163,7 @@ public class XPathLetExpr extends Expression {
         	  }
         	  else if (XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(funcNamespace)) {
         		  XSL3ConstructorOrExtensionFunction funcObj = new XSL3ConstructorOrExtensionFunction(funcNamespace, funcLocalName, null);
-        		  funcObj.setArity(funcArity);
+        		  funcObj.setDefinedArity(new Short[] { funcArity });
         		  varBindingEvalResult = new XObject(funcObj);        		  
         	  }
         	  else {
diff --git a/src/main/java/org/apache/xpath/functions/FuncAbs.java b/src/main/java/org/apache/xpath/functions/FuncAbs.java
index 008fb4790..04ce08736 100644
--- a/src/main/java/org/apache/xpath/functions/FuncAbs.java
+++ b/src/main/java/org/apache/xpath/functions/FuncAbs.java
@@ -37,7 +37,7 @@ public class FuncAbs extends FunctionDef1Arg
 	 * Class constructor.
 	 */
 	public FuncAbs() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
 	/**
diff --git a/src/main/java/org/apache/xpath/functions/FuncBaseUri.java b/src/main/java/org/apache/xpath/functions/FuncBaseUri.java
index 65eed4188..853d5e47e 100644
--- a/src/main/java/org/apache/xpath/functions/FuncBaseUri.java
+++ b/src/main/java/org/apache/xpath/functions/FuncBaseUri.java
@@ -46,7 +46,7 @@ public class FuncBaseUri extends FunctionDef1Arg
 	 * Class constructor.
 	 */
 	public FuncBaseUri() {
-		m_arityArr = new Short[] {0, 1}; 
+		m_defined_arity = new Short[] {0, 1}; 
 	}
 
 	/**
diff --git a/src/main/java/org/apache/xpath/functions/FuncCeiling.java b/src/main/java/org/apache/xpath/functions/FuncCeiling.java
index 096c1ab0c..e54291d7c 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCeiling.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCeiling.java
@@ -37,7 +37,7 @@ public class FuncCeiling extends FunctionDef1Arg
 	 * Class constructor.
 	 */
 	public FuncCeiling() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncData.java b/src/main/java/org/apache/xpath/functions/FuncData.java
index 2baac2f2b..396104f51 100644
--- a/src/main/java/org/apache/xpath/functions/FuncData.java
+++ b/src/main/java/org/apache/xpath/functions/FuncData.java
@@ -58,7 +58,7 @@ public class FuncData extends FunctionDef1Arg
    * Class constructor.
    */
   public FuncData() {
-	  m_arityArr = new Short[] {0, 1}; 
+	  m_defined_arity = new Short[] {0, 1}; 
   }
 
   /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncDocumentUri.java b/src/main/java/org/apache/xpath/functions/FuncDocumentUri.java
index 3707636a8..c8cd734a3 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDocumentUri.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDocumentUri.java
@@ -47,7 +47,7 @@ public class FuncDocumentUri extends FunctionDef1Arg
 	 * Class constructor.
 	 */
 	public FuncDocumentUri() {
-		m_arityArr = new Short[] {0, 1}; 
+		m_defined_arity = new Short[] {0, 1}; 
 	}
 
 	/**
diff --git a/src/main/java/org/apache/xpath/functions/FuncFloor.java b/src/main/java/org/apache/xpath/functions/FuncFloor.java
index 5348af599..bdd6ae7f2 100644
--- a/src/main/java/org/apache/xpath/functions/FuncFloor.java
+++ b/src/main/java/org/apache/xpath/functions/FuncFloor.java
@@ -37,7 +37,7 @@ public class FuncFloor extends FunctionDef1Arg
 	 * Class constructor.
 	 */
 	public FuncFloor() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
   /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java b/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
index 54d4920f5..50ac61243 100644
--- a/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
+++ b/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
@@ -52,12 +52,14 @@ public class FuncFunctionArity extends FunctionDef1Arg
 {
 	
 	private static final long serialVersionUID = 8093916820370748865L;
+	
+	final short FUNC_ARITY_NOT_KNOWN = -1; 
 
 	/**
 	 * Class constructor;
 	 */
 	public FuncFunctionArity() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
 	/**
@@ -76,8 +78,6 @@ public class FuncFunctionArity extends FunctionDef1Arg
 		
 		Expression arg0 = getArg0();		
 		
-		short funcArity = FUNC_ARITY_NOT_KNOWN;
-		
 		if (arg0 instanceof Variable) {
 		   Variable var1 = (Variable)arg0;
 		   org.apache.xpath.XPath xpathSelectExpr = (var1.getElemVariable()).getSelect();
@@ -93,7 +93,7 @@ public class FuncFunctionArity extends FunctionDef1Arg
 			   ElemFunction elemFunction = XslTransformEvaluationHelper.getElemFunctionFromNodeTestExpression((NodeTest)selectExpr, 
 					                                                                                          transformerImpl, srcLocator);
 			   if (elemFunction != null) {
-				   funcArity = elemFunction.getArity();
+				   short funcArity = elemFunction.getArity();
 				   result = new XSInteger(String.valueOf(funcArity));
 			   }
 			   else {
@@ -119,7 +119,7 @@ public class FuncFunctionArity extends FunctionDef1Arg
 			ElemFunction elemFunction = XslTransformEvaluationHelper.getElemFunctionFromNodeTestExpression((NodeTest)arg0, 
 					                                                                                        transformerImpl, srcLocator);			
 			if (elemFunction != null) {
-			   funcArity = elemFunction.getArity();
+			   short funcArity = elemFunction.getArity();
 			   result = new XSInteger(String.valueOf(funcArity));
 			}
 			else {
@@ -189,33 +189,21 @@ public class FuncFunctionArity extends FunctionDef1Arg
 			 * stylesheet or an XPath literal expression. This arity value is
 			 * further verified below with an XPath function's actual arity value.
 			 */
-			final Short funcArity = xpathNamedFunctionReference.getArity();
+			final Short runTimeArity = xpathNamedFunctionReference.getArity();
 			
 			short funcActualArity = FUNC_ARITY_NOT_KNOWN; 
-			Short[] arityArr = function.getArityArray();
-			if (arityArr != null) {
-			   List<Short> list1 = Arrays.asList(arityArr);
-			   if (list1.contains(funcArity)) {
-				  funcActualArity = funcArity;
-				  result = new XSInteger(String.valueOf(funcActualArity));
-			   }
-			   else {
-				  String funcNameRefStr = "{" + funcNamespace + "}" + funcName + "#" + funcArity; 
-				  throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
-																												 + " not found.", srcLocator); 
-			   }
+			Short[] funcDefinedArityArr = function.getDefinedArity();						
+			List<Short> funcDefinedArityList = Arrays.asList(funcDefinedArityArr);
+			if (funcDefinedArityList.contains(runTimeArity)) {
+				funcActualArity = runTimeArity;
+				result = new XSInteger(String.valueOf(funcActualArity));
 			}
 			else {
-				funcActualArity = function.getArity();
-				if ((funcArity != FUNC_ARITY_NOT_KNOWN) && (funcActualArity == funcArity)) {
-					result = new XSInteger(String.valueOf(funcActualArity)); 
-				}
-				else {
-					String funcNameRefStr = "{" + funcNamespace + "}" + funcName + "#" + funcArity; 
-					throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
-																												   + " not found.", srcLocator);
-				}
+				String funcNameRefStr = "{" + funcNamespace + "}" + funcName + "#" + runTimeArity; 
+				throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
+																											   + " not found.", srcLocator); 
 			}
+			
 		}
 		
 		return result;
diff --git a/src/main/java/org/apache/xpath/functions/FuncNumber.java b/src/main/java/org/apache/xpath/functions/FuncNumber.java
index 5194964a0..31fb371c5 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNumber.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNumber.java
@@ -36,7 +36,7 @@ public class FuncNumber extends FunctionDef1Arg
      * Class constructor.
      */
     public FuncNumber() {
-  	   m_arityArr = new Short[] {0, 1};  
+  	   m_defined_arity = new Short[] {0, 1};  
     }
 
   /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncRound.java b/src/main/java/org/apache/xpath/functions/FuncRound.java
index c4da46f8b..ab2ce29da 100644
--- a/src/main/java/org/apache/xpath/functions/FuncRound.java
+++ b/src/main/java/org/apache/xpath/functions/FuncRound.java
@@ -49,7 +49,7 @@ public class FuncRound extends Function2Args
        * Class constructor.
        */
       public FuncRound() {
-    	  m_arityArr = new Short[] {1, 2};  
+    	  m_defined_arity = new Short[] {1, 2};  
       }
     
       /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncString.java b/src/main/java/org/apache/xpath/functions/FuncString.java
index f866f896b..d982d580d 100644
--- a/src/main/java/org/apache/xpath/functions/FuncString.java
+++ b/src/main/java/org/apache/xpath/functions/FuncString.java
@@ -39,7 +39,7 @@ public class FuncString extends FunctionDef1Arg
     * Class constructor.
     */
    public FuncString() {
-	  m_arityArr = new Short[] {0, 1}; 
+	  m_defined_arity = new Short[] {0, 1}; 
    }
 
   /**
diff --git a/src/main/java/org/apache/xpath/functions/Function.java b/src/main/java/org/apache/xpath/functions/Function.java
index d0e46ab2a..a1cfa70e2 100644
--- a/src/main/java/org/apache/xpath/functions/Function.java
+++ b/src/main/java/org/apache/xpath/functions/Function.java
@@ -29,13 +29,14 @@ import org.apache.xpath.compiler.Compiler;
 import org.apache.xpath.objects.XObject;
 
 /**
- * This is a superclass of all XPath functions.  This allows two
+ * This is a superclass of all XPath functions. This allows two
  * ways for the class to be called. One method is that the
  * super class processes the arguments and hands the results to
  * the derived class, the other method is that the derived
  * class may process it's own arguments, which is faster since
  * the arguments don't have to be added to an array, but causes
  * a larger code footprint.
+ * 
  * @xsl.usage advanced
  */
 public abstract class Function extends Expression
@@ -47,19 +48,14 @@ public abstract class Function extends Expression
     */
    protected Expression m_arg0;
    
-   protected final short FUNC_ARITY_NOT_KNOWN = -1;
-   
-   /**
-    * Number of arguments specified in the function 
-    * definition. Initialized to FUNC_ARITY_NOT_KNOWN.
-    */
-   protected short m_arity = FUNC_ARITY_NOT_KNOWN;
-   
    /**
     * Class field to represent, an XPath built-in function's
-    * arity for function's having more than one possible arity.
+    * arity which can have count 0 or greater. These are the
+    * function arity values defined by XPath 3.1 F&O spec, and
+    * are set to this variable by concrete function implementation 
+    * subclasses of this class.
     */
-   protected Short[] m_arityArr = null;
+   protected Short[] m_defined_arity = null;
    
    private String m_localName = null;
    
@@ -173,21 +169,13 @@ public abstract class Function extends Expression
   public void setArg0(Expression arg0) {
 	  this.m_arg0 = arg0; 
   }
-
-  public short getArity() {
-	  return m_arity;
-  }
-
-  public void setArity(short arity) {
-	  this.m_arity = arity;
-  }
   
-  public Short[] getArityArray() {
-	 return m_arityArr; 
+  public Short[] getDefinedArity() {
+	 return m_defined_arity; 
   }
   
-  public void setArityArray(Short[] arityArr) {
-	 this.m_arityArr = arityArr; 
+  public void setDefinedArity(Short[] definedArity) {
+	 this.m_defined_arity = definedArity; 
   }
 
   public String getLocalName() {
diff --git a/src/main/java/org/apache/xpath/functions/XPathDynamicFunctionCall.java b/src/main/java/org/apache/xpath/functions/XPathDynamicFunctionCall.java
index 420526160..c1beb2f57 100644
--- a/src/main/java/org/apache/xpath/functions/XPathDynamicFunctionCall.java
+++ b/src/main/java/org/apache/xpath/functions/XPathDynamicFunctionCall.java
@@ -16,6 +16,7 @@
  */
 package org.apache.xpath.functions;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -403,11 +404,15 @@ public class XPathDynamicFunctionCall extends Expression {
     	    	  
     	    	  String funcNamespace = function.getNamespace();
  	    		  String funcLocalName = function.getLocalName();
- 	    		  int funcArity = function.getArity();
  	    		  
- 	    		  String expandedFuncName = "{" + funcNamespace + ":" + funcLocalName + "}#" + funcArity;
+ 	    		  Short[] funcDefinedArity = function.getDefinedArity();
+ 	    		  List<Short> arityList = Arrays.asList(funcDefinedArity);
  	    		  
-    	    	  if (m_argList.size() == funcArity) {    	    		     	    		 
+ 	    		  final short runTimeArityValue = (short)(m_argList.size());
+ 	    		  
+ 	    		  String expandedFuncName = "{" + funcNamespace + ":" + funcLocalName + "}#" + runTimeArityValue;
+ 	    		  
+    	    	  if (arityList.contains(runTimeArityValue)) {    	    		 
     	    		 try {
     	    			 for (int idx = 0; idx < m_argList.size(); idx++) {
     	    				 String argXPathStr = m_argList.get(idx);
@@ -433,9 +438,9 @@ public class XPathDynamicFunctionCall extends Expression {
     	    	  }
     	    	  else {
     	    		 throw new javax.xml.transform.TransformerException("XPTY0004 : The number of arguments provided for "
-    	    		 		                                                                     + "function call " + expandedFuncName + " is "
-    	    		 		                                                                     + "incorrect. Required " + funcArity + ", supplied " 
-    	    		 		                                                                     + m_argList.size() + ".", srcLocator); 
+    	    		 		                                                                        + "function call " + expandedFuncName + " is "
+    	    		 		                                                                        + "incorrect. Required " + runTimeArityValue + ", supplied " 
+    	    		 		                                                                        + m_argList.size() + ".", srcLocator); 
     	    	  }
     	       }
     	       else if (obj1 instanceof ElemFunction) {
diff --git a/src/main/java/org/apache/xpath/functions/XSL3ConstructorOrExtensionFunction.java b/src/main/java/org/apache/xpath/functions/XSL3ConstructorOrExtensionFunction.java
index 143e26640..c193b7fc2 100644
--- a/src/main/java/org/apache/xpath/functions/XSL3ConstructorOrExtensionFunction.java
+++ b/src/main/java/org/apache/xpath/functions/XSL3ConstructorOrExtensionFunction.java
@@ -71,11 +71,6 @@ public class XSL3ConstructorOrExtensionFunction extends Function
    *  @serial 
    */
   Object m_methodKey;
-  
-  /**
-   * Function's arity value.
-   */
-  private short m_arity;
 
   /**
    * Array of static expressions which represent the parameters to the
@@ -362,11 +357,4 @@ public class XSL3ConstructorOrExtensionFunction extends Function
       return m_extensionName;
   }
 
-  public short getArity() {
-	 return m_arity;
-  }
-
-  public void setArity(short arity) {
-	 this.m_arity = arity;
-  }  
 }
diff --git a/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java b/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
index b55890b84..3267dec79 100644
--- a/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
+++ b/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
@@ -743,7 +743,7 @@ public class XSL3FunctionService {
     		Function function = funcTable.getFunction(Integer.valueOf(funcIdStr));
     		function.setLocalName(funcLocalName);
     		function.setNamespace(funcNamespace);
-    		function.setArity(funcArity);
+    		function.setDefinedArity(new Short[] { funcArity });
 
     		for (int idx = 0; idx < argList.size(); idx++) {
     			String argXPathStr = argList.get(idx);
@@ -815,7 +815,7 @@ public class XSL3FunctionService {
     		// Evaluate an XPath schema type constructor function call reference
     		
     		XSL3ConstructorOrExtensionFunction funcObj = new XSL3ConstructorOrExtensionFunction(funcNamespace, funcLocalName, null);
-    		funcObj.setArity(funcArity);
+    		funcObj.setDefinedArity(new Short[] { funcArity });
 
     		for (int idx = 0; idx < argList.size(); idx++) {
     			String argXPathStr = argList.get(idx);
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathAcos.java b/src/main/java/org/apache/xpath/functions/math/FuncMathAcos.java
index f52338210..6783b19af 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathAcos.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathAcos.java
@@ -47,7 +47,7 @@ public class FuncMathAcos extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathAcos() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathAsin.java b/src/main/java/org/apache/xpath/functions/math/FuncMathAsin.java
index de3f0e222..1f8b23a22 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathAsin.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathAsin.java
@@ -47,7 +47,7 @@ public class FuncMathAsin extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathAsin() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathAtan.java b/src/main/java/org/apache/xpath/functions/math/FuncMathAtan.java
index 530793957..65920a5e7 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathAtan.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathAtan.java
@@ -47,7 +47,7 @@ public class FuncMathAtan extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathAtan() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathAtan2.java b/src/main/java/org/apache/xpath/functions/math/FuncMathAtan2.java
index 6dbbab9ff..4273a1068 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathAtan2.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathAtan2.java
@@ -44,7 +44,7 @@ public class FuncMathAtan2 extends Function2Args {
 	 * Class constructor.
 	 */
 	public FuncMathAtan2() {
-	    m_arity = 2;
+		m_defined_arity = new Short[] { 2 };
 	}
     
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathCos.java b/src/main/java/org/apache/xpath/functions/math/FuncMathCos.java
index 706e1c713..d88f061ef 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathCos.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathCos.java
@@ -47,7 +47,7 @@ public class FuncMathCos extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathCos() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathExp.java b/src/main/java/org/apache/xpath/functions/math/FuncMathExp.java
index 15c85a553..0d61b5f24 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathExp.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathExp.java
@@ -47,7 +47,7 @@ public class FuncMathExp extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathExp() {
-	    m_arity = 1;
+	    m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathExp10.java b/src/main/java/org/apache/xpath/functions/math/FuncMathExp10.java
index 0d4a87964..783bb942b 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathExp10.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathExp10.java
@@ -47,7 +47,7 @@ public class FuncMathExp10 extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathExp10() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathLog.java b/src/main/java/org/apache/xpath/functions/math/FuncMathLog.java
index 925607c7f..8b3a79613 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathLog.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathLog.java
@@ -47,7 +47,7 @@ public class FuncMathLog extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathLog() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathLog10.java b/src/main/java/org/apache/xpath/functions/math/FuncMathLog10.java
index 31fa501b3..c7b020437 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathLog10.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathLog10.java
@@ -47,7 +47,7 @@ public class FuncMathLog10 extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathLog10() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathPi.java b/src/main/java/org/apache/xpath/functions/math/FuncMathPi.java
index 3b7f234da..d227329db 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathPi.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathPi.java
@@ -41,7 +41,7 @@ public class FuncMathPi extends Function
 	 * Class constructor.
 	 */
 	public FuncMathPi() {
-	    m_arity = 0;
+		m_defined_arity = new Short[] { 0 };
 	}
 
   /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathPow.java b/src/main/java/org/apache/xpath/functions/math/FuncMathPow.java
index 45df53659..798242722 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathPow.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathPow.java
@@ -44,7 +44,7 @@ public class FuncMathPow extends Function2Args {
 	 * Class constructor.
 	 */
 	public FuncMathPow() {
-	    m_arity = 2;
+		m_defined_arity = new Short[] { 2 };
 	}
     
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathSin.java b/src/main/java/org/apache/xpath/functions/math/FuncMathSin.java
index a5045a528..b04ff2e59 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathSin.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathSin.java
@@ -47,7 +47,7 @@ public class FuncMathSin extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathSin() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathSqrt.java b/src/main/java/org/apache/xpath/functions/math/FuncMathSqrt.java
index ed1a8d90e..86f716fa3 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathSqrt.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathSqrt.java
@@ -47,7 +47,7 @@ public class FuncMathSqrt extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathSqrt() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/math/FuncMathTan.java b/src/main/java/org/apache/xpath/functions/math/FuncMathTan.java
index 38782c78e..91620ae82 100644
--- a/src/main/java/org/apache/xpath/functions/math/FuncMathTan.java
+++ b/src/main/java/org/apache/xpath/functions/math/FuncMathTan.java
@@ -47,7 +47,7 @@ public class FuncMathTan extends FunctionOneArg
 	 * Class constructor.
 	 */
 	public FuncMathTan() {
-	    m_arity = 1;
+		m_defined_arity = new Short[] { 1 };
 	}
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncAnalyzeString.java b/src/main/java/org/apache/xpath/functions/string/FuncAnalyzeString.java
index a7b14eea9..cab9fa76f 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncAnalyzeString.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncAnalyzeString.java
@@ -54,6 +54,13 @@ public class FuncAnalyzeString extends FunctionMultiArgs {
 
 	private static final long serialVersionUID = -1559008263985308212L;
 	
+	/**
+	 * Class constructor.
+	 */
+	public FuncAnalyzeString() {
+	   m_defined_arity = new Short[] { 2, 3 };
+	}
+	
 	/**
      * The number of arguments passed to the fn:analyze-string function 
      * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncCodePointsToString.java b/src/main/java/org/apache/xpath/functions/string/FuncCodePointsToString.java
index 7ed7d70ae..b40da61f4 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncCodePointsToString.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncCodePointsToString.java
@@ -42,6 +42,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncCodePointsToString extends FunctionOneArg {
 
     private static final long serialVersionUID = -4531182517520672452L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncCodePointsToString() {
+	    m_defined_arity = new Short[] { 1 };
+	}
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncCodepointEqual.java b/src/main/java/org/apache/xpath/functions/string/FuncCodepointEqual.java
index 40b3f05d5..a84fa1251 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncCodepointEqual.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncCodepointEqual.java
@@ -39,6 +39,13 @@ public class FuncCodepointEqual extends Function2Args {
     
     private static final long serialVersionUID = -2518383964235644671L;
     
+    /**
+	 * Class constructor.
+	 */
+    public FuncCodepointEqual() {
+	   m_defined_arity = new Short[] { 2 };
+    }
+    
     /**
      * Execute the function. The function must return a valid object.
      * 
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncCompare.java b/src/main/java/org/apache/xpath/functions/string/FuncCompare.java
index 68683feb7..2a6f20531 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncCompare.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncCompare.java
@@ -43,6 +43,13 @@ public class FuncCompare extends FunctionMultiArgs {
     
     private static final long serialVersionUID = 4648998919300586767L;
     
+    /**
+	 * Class constructor.
+	 */
+    public FuncCompare() {
+	   m_defined_arity = new Short[] { 2, 3 };
+    }
+    
     /**
      * The number of arguments passed to the fn:compare function 
      * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncConcat.java b/src/main/java/org/apache/xpath/functions/string/FuncConcat.java
index 1615d7d79..a1ec04f96 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncConcat.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncConcat.java
@@ -38,13 +38,24 @@ import xml.xpath31.processor.types.XSUntyped;
 import xml.xpath31.processor.types.XSUntypedAtomic;
 
 /**
- * Execute the concat() function.
+ * Implementation of XPath 3.1 function fn:concat.
  * 
  * @xsl.usage advanced
  */
 public class FuncConcat extends FunctionMultiArgs
 {
     static final long serialVersionUID = 1737228885202314413L;
+    
+    /**
+	 * Class constructor.
+	 */
+    public FuncConcat() {
+       short maxArgSupported = (Short.MAX_VALUE - 1); 
+	   m_defined_arity = new Short[maxArgSupported];
+	   for (short idx = 2; idx <= maxArgSupported; idx++) {
+		  m_defined_arity[idx - 2] = idx;  
+	   }
+    }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncContains.java b/src/main/java/org/apache/xpath/functions/string/FuncContains.java
index a5aef1b7a..64230f847 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncContains.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncContains.java
@@ -37,6 +37,13 @@ public class FuncContains extends XSL3StringCollationAwareFunction
   
   static final long serialVersionUID = 5084753781887919723L;
   
+  /**
+   * Class constructor.
+   */
+  public FuncContains() {
+	 m_defined_arity = new Short[] { 2, 3 };
+  }
+  
   /**
    * The number of arguments passed to the fn:contains function 
    * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncContainsToken.java b/src/main/java/org/apache/xpath/functions/string/FuncContainsToken.java
index 4200d131d..1bd53dba7 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncContainsToken.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncContainsToken.java
@@ -42,8 +42,6 @@ import xml.xpath31.processor.types.XSBoolean;
 /**
  * Implementation of an XPath 3.1 function contains-token().
  * 
- * Ref : https://www.w3.org/TR/xpath-functions-31/#func-contains-token
- * 
  * @author Mukul Gandhi <mu...@apache.org>
  * 
  * @xsl.usage advanced
@@ -51,6 +49,13 @@ import xml.xpath31.processor.types.XSBoolean;
 public class FuncContainsToken extends FunctionMultiArgs {
 
    private static final long serialVersionUID = -7113398825278491809L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncContainsToken() {
+ 	  m_defined_arity = new Short[] { 2, 3 };
+   }
 
    /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncEndsWith.java b/src/main/java/org/apache/xpath/functions/string/FuncEndsWith.java
index 2ada20619..8eb9f05d0 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncEndsWith.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncEndsWith.java
@@ -38,6 +38,13 @@ public class FuncEndsWith extends XSL3StringCollationAwareFunction
 	
   static final long serialVersionUID = -4632201923330818748L;
   
+  /**
+   * Class constructor.
+   */
+  public FuncEndsWith() {
+	 m_defined_arity = new Short[] { 2, 3 };
+  }
+  
   /**
    * The number of arguments passed to the fn:ends-with function 
    * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncLowerCase.java b/src/main/java/org/apache/xpath/functions/string/FuncLowerCase.java
index 8d2cc1d5b..00cf7ce41 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncLowerCase.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncLowerCase.java
@@ -36,8 +36,15 @@ public class FuncLowerCase extends FunctionDef1Arg
 {
 
      private static final long serialVersionUID = 1547894171087866269L;
-
+     
      /**
+ 	  * Class constructor.
+ 	  */
+      public FuncLowerCase() {
+ 	      m_defined_arity = new Short[] { 1 };
+      }
+
+      /**
        * Execute the function. The function must return a valid object.
        * 
        * @param xctxt The current execution context.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncMatches.java b/src/main/java/org/apache/xpath/functions/string/FuncMatches.java
index f827aa31a..771fb3b42 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncMatches.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncMatches.java
@@ -46,7 +46,14 @@ public class FuncMatches extends Function3Args {
     
    static final long serialVersionUID = 400116356230813776L;
    
-   private static final String FUNCTION_NAME = "matches()"; 
+   private static final String FUNCTION_NAME = "matches()";
+   
+   /**
+    * Class constructor.
+    */
+   public FuncMatches() {
+ 	  m_defined_arity = new Short[] { 2, 3 };
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncNormalizeSpace.java b/src/main/java/org/apache/xpath/functions/string/FuncNormalizeSpace.java
index 334b9d5c1..9edeb4289 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncNormalizeSpace.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncNormalizeSpace.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncNormalizeSpace extends FunctionDef1Arg
 {
     static final long serialVersionUID = -3377956872032190880L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncNormalizeSpace() {
+  	   m_defined_arity = new Short[] { 0, 1 };
+    }    
 
   /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncReplace.java b/src/main/java/org/apache/xpath/functions/string/FuncReplace.java
index b207dc979..d94663c5e 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncReplace.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncReplace.java
@@ -48,6 +48,13 @@ public class FuncReplace extends Function4Args {
    static final long serialVersionUID = 400116356230813776L;
    
    private static final String FUNCTION_NAME = "replace()";
+   
+   /**
+    * Class constructor.
+    */
+   public FuncReplace() {
+ 	  m_defined_arity = new Short[] { 3, 4 };
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncStartsWith.java b/src/main/java/org/apache/xpath/functions/string/FuncStartsWith.java
index f1972ee8c..8672a48dd 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncStartsWith.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncStartsWith.java
@@ -36,6 +36,13 @@ public class FuncStartsWith extends XSL3StringCollationAwareFunction
   
   static final long serialVersionUID = 2194585774699567928L;
   
+  /**
+   * Class constructor.
+   */
+  public FuncStartsWith() {
+	 m_defined_arity = new Short[] { 2, 3 };
+  }
+  
   /**
    * The number of arguments passed to the fn:starts-with function 
    * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncStringJoin.java b/src/main/java/org/apache/xpath/functions/string/FuncStringJoin.java
index 436b25d8e..bb7304da6 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncStringJoin.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncStringJoin.java
@@ -55,6 +55,13 @@ import xml.xpath31.processor.types.XSUntypedAtomic;
 public class FuncStringJoin extends Function2Args {
 
    private static final long serialVersionUID = 4171534319684252331L;
+   
+   /**
+	* Class constructor.
+	*/
+   public FuncStringJoin() {
+	   m_defined_arity = new Short[] { 1, 2 };
+   }
 
    /**
    * Implementation of the function.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncStringLength.java b/src/main/java/org/apache/xpath/functions/string/FuncStringLength.java
index ff15b335b..d8e69ec7a 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncStringLength.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncStringLength.java
@@ -33,6 +33,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncStringLength extends FunctionDef1Arg
 {
    static final long serialVersionUID = -159616417996519839L;
+   
+  /**
+   * Class constructor.
+   */
+  public FuncStringLength() {
+	 m_defined_arity = new Short[] { 0, 1 };
+  }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncStringToCodepoints.java b/src/main/java/org/apache/xpath/functions/string/FuncStringToCodepoints.java
index fb1ba612a..399cfdf09 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncStringToCodepoints.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncStringToCodepoints.java
@@ -41,6 +41,13 @@ public class FuncStringToCodepoints extends FunctionDef1Arg
 {
 
    private static final long serialVersionUID = -2509583274718320399L;
+   
+   /**
+	* Class constructor.
+	*/
+   public FuncStringToCodepoints() {
+	  m_defined_arity = new Short[] { 1 };
+   }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncSubstring.java b/src/main/java/org/apache/xpath/functions/string/FuncSubstring.java
index 57d851c8e..9a829f2ed 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncSubstring.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncSubstring.java
@@ -42,6 +42,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncSubstring extends Function3Args
 {
     static final long serialVersionUID = -5996676095024715502L;
+    
+   /**
+	* Class constructor.
+	*/
+   public FuncSubstring() {
+	   m_defined_arity = new Short[] { 2, 3 };
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncSubstringAfter.java b/src/main/java/org/apache/xpath/functions/string/FuncSubstringAfter.java
index afc3195b9..a2b7abddf 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncSubstringAfter.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncSubstringAfter.java
@@ -36,6 +36,13 @@ public class FuncSubstringAfter extends XSL3StringCollationAwareFunction
 {
    
   static final long serialVersionUID = -8119731889862512194L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncSubstringAfter() {
+	 m_defined_arity = new Short[] { 2, 3 };
+  }
     
   /**
     * The number of arguments passed to the fn:substring-after function 
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncSubstringBefore.java b/src/main/java/org/apache/xpath/functions/string/FuncSubstringBefore.java
index 10b06564d..efe96eaf1 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncSubstringBefore.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncSubstringBefore.java
@@ -37,6 +37,13 @@ public class FuncSubstringBefore extends XSL3StringCollationAwareFunction
   
   static final long serialVersionUID = 4110547161672431775L;
   
+  /**
+   * Class constructor.
+   */
+  public FuncSubstringBefore() {
+	 m_defined_arity = new Short[] { 2, 3 };
+  }
+  
   /**
    * The number of arguments passed to the fn:substring-before function 
    * call.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncTokenize.java b/src/main/java/org/apache/xpath/functions/string/FuncTokenize.java
index 677404314..d3233519a 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncTokenize.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncTokenize.java
@@ -49,7 +49,14 @@ public class FuncTokenize extends Function3Args {
 
   private static final long serialVersionUID = -7790625909187393478L;
   
-  private static final String FUNCTION_NAME = "tokenize()"; 
+  private static final String FUNCTION_NAME = "tokenize()";
+  
+  /**
+   * Class constructor.
+   */
+  public FuncTokenize() {
+	  m_defined_arity = new Short[] { 1, 2, 3 };
+  }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncTranslate.java b/src/main/java/org/apache/xpath/functions/string/FuncTranslate.java
index c98c3a3f2..802ef0ed8 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncTranslate.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncTranslate.java
@@ -36,6 +36,13 @@ public class FuncTranslate extends Function3Args
 {
   
    static final long serialVersionUID = -1672834340026116482L;
+   
+   /**
+	* Class constructor.
+	*/
+    public FuncTranslate() {
+	   m_defined_arity = new Short[] { 3 };
+    }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/string/FuncUpperCase.java b/src/main/java/org/apache/xpath/functions/string/FuncUpperCase.java
index 6f500d7f4..58cd73e90 100644
--- a/src/main/java/org/apache/xpath/functions/string/FuncUpperCase.java
+++ b/src/main/java/org/apache/xpath/functions/string/FuncUpperCase.java
@@ -35,7 +35,14 @@ import org.apache.xpath.objects.XString;
 public class FuncUpperCase extends FunctionDef1Arg
 {
     
-    private static final long serialVersionUID = 2596924943524147578L;
+     private static final long serialVersionUID = 2596924943524147578L;
+     
+     /**
+ 	  * Class constructor.
+ 	  */
+      public FuncUpperCase() {
+ 	      m_defined_arity = new Short[] { 1 };
+      }
 
      /**
        * Execute the function. The function must return a valid object.
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
index 1e39de6f7..6d587b063 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:47Z" fail="53" name="as" pass="51" skipped="4" statusUnknown="1" totalRun="109">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:11Z" fail="53" name="as" pass="51" skipped="4" statusUnknown="1" totalRun="109">
    <testResult status="pass" testName="as-0101"/>
    <testResult status="pass" testName="as-0102"/>
    <testResult status="pass" testName="as-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
index d7dc6609e..11418e4f9 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:48Z" fail="14" name="avt" pass="21" skipped="0" statusUnknown="0" totalRun="35">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:13Z" fail="14" name="avt" pass="21" skipped="0" statusUnknown="0" totalRun="35">
    <testResult status="pass" testName="avt-0101"/>
    <testResult status="fail" testName="avt-0201"/>
    <testResult status="pass" testName="avt-0202"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
index 13f1f680e..8bd6d9387 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:49Z" fail="65" name="match" pass="59" skipped="8" statusUnknown="5" totalRun="137">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:13Z" fail="65" name="match" pass="59" skipped="8" statusUnknown="5" totalRun="137">
    <testResult status="pass" testName="match-001"/>
    <testResult status="pass" testName="match-002"/>
    <testResult status="pass" testName="match-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
index 53d83b8bd..97a389328 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:49Z" fail="7" name="select" pass="16" skipped="0" statusUnknown="2" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:14Z" fail="7" name="select" pass="16" skipped="0" statusUnknown="2" totalRun="25">
    <testResult status="pass" testName="select-0101"/>
    <testResult status="pass" testName="select-0102"/>
    <testResult status="fail" testName="select-0201"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
index 43e03faf6..3162e2b59 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="7" name="attribute-set" pass="41" skipped="1" statusUnknown="1" totalRun="50">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:24Z" fail="7" name="attribute-set" pass="41" skipped="1" statusUnknown="1" totalRun="50">
    <testResult status="pass" testName="attribute-set-0101"/>
    <testResult status="fail" testName="attribute-set-0102">
       <outResult/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
index bd859b96b..b724aff11 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="12" name="character-map" pass="15" skipped="0" statusUnknown="2" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:24Z" fail="12" name="character-map" pass="15" skipped="0" statusUnknown="2" totalRun="29">
    <testResult status="pass" testName="character-map-001"/>
    <testResult status="pass" testName="character-map-002"/>
    <testResult status="pass" testName="character-map-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
index b888d3cfe..cb250ca98 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="38" name="function" pass="23" skipped="4" statusUnknown="5" totalRun="70">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:24Z" fail="38" name="function" pass="23" skipped="4" statusUnknown="5" totalRun="70">
    <testResult status="fail" testName="function-0001">
       <outResult/>
    </testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
index 247227f8e..8645abc4e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:47Z" fail="3" name="variable" pass="16" skipped="0" statusUnknown="1" totalRun="20">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:10Z" fail="3" name="variable" pass="16" skipped="0" statusUnknown="1" totalRun="20">
    <testResult status="pass" testName="variable-0101"/>
    <testResult status="pass" testName="variable-0102"/>
    <testResult status="pass" testName="variable-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
index 4a9b1a6c1..85c4ed9b7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="28" name="axes" pass="173" skipped="0" statusUnknown="0" totalRun="201">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:24Z" fail="28" name="axes" pass="173" skipped="0" statusUnknown="0" totalRun="201">
    <testResult status="pass" testName="axes-001"/>
    <testResult status="pass" testName="axes-002"/>
    <testResult status="pass" testName="axes-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
index 97e11a1be..3177f246b 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:56Z" fail="5" name="castable" pass="4" skipped="0" statusUnknown="0" totalRun="9">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:25Z" fail="5" name="castable" pass="4" skipped="0" statusUnknown="0" totalRun="9">
    <testResult status="pass" testName="castable-001"/>
    <testResult status="pass" testName="castable-002"/>
    <testResult status="pass" testName="castable-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
index b7b2365bd..d3ccad13d 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:56Z" fail="0" name="expression" pass="9" skipped="0" statusUnknown="1" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:25Z" fail="0" name="expression" pass="9" skipped="0" statusUnknown="1" totalRun="10">
    <testResult status="pass" testName="expression-0101"/>
    <testResult status="pass" testName="expression-0301"/>
    <testResult status="pass" testName="expression-0302"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
index 7c4aa8d8d..62f139e73 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:56Z" fail="2" name="for" pass="1" skipped="0" statusUnknown="1" totalRun="4">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:26Z" fail="2" name="for" pass="1" skipped="0" statusUnknown="1" totalRun="4">
    <testResult status="fail" testName="for-001"/>
    <testResult status="fail" testName="for-002"/>
    <testResult status="pass" testName="for-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
index cc52f74ab..1576957cc 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="6" name="higher-order-functions" pass="18" skipped="0" statusUnknown="1" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:29Z" fail="6" name="higher-order-functions" pass="18" skipped="0" statusUnknown="1" totalRun="25">
    <testResult status="pass" testName="higher-order-functions-001"/>
    <testResult status="pass" testName="higher-order-functions-002"/>
    <testResult status="pass" testName="higher-order-functions-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
index 165df06ec..b36a19818 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:58Z" fail="39" name="math" pass="108" skipped="0" statusUnknown="1" totalRun="148">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:28Z" fail="39" name="math" pass="108" skipped="0" statusUnknown="1" totalRun="148">
    <testResult status="pass" testName="math-0101"/>
    <testResult status="fail" testName="math-0102">
       <outResult/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
index f55e645f3..d319b75e8 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="36" name="nodetest" pass="2" skipped="0" statusUnknown="0" totalRun="38">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:29Z" fail="36" name="nodetest" pass="2" skipped="0" statusUnknown="0" totalRun="38">
    <testResult status="pass" testName="nodetest-001"/>
    <testResult status="pass" testName="nodetest-002"/>
    <testResult status="fail" testName="nodetest-003">
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
index ea887d67c..1c5b4a66f 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:29Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
    <testResult status="pass" testName="path-001"/>
    <testResult status="pass" testName="path-002"/>
    <testResult status="pass" testName="path-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
index b192378dc..d086317f4 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="7" name="predicate" pass="50" skipped="0" statusUnknown="0" totalRun="57">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:30Z" fail="7" name="predicate" pass="50" skipped="0" statusUnknown="0" totalRun="57">
    <testResult status="fail" testName="predicate-001"/>
    <testResult status="fail" testName="predicate-002"/>
    <testResult status="fail" testName="predicate-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
index b87aed622..049117b1e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:35Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:03Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
    <testResult status="pass" testName="deep-equal-001"/>
    <testResult status="pass" testName="deep-equal-002"/>
 </testrun>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
index a59bb7d57..4aca45ed5 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:36Z" fail="33" name="format-number" pass="37" skipped="4" statusUnknown="0" totalRun="74">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:05Z" fail="33" name="format-number" pass="37" skipped="4" statusUnknown="0" totalRun="74">
    <testResult status="fail" testName="format-number-001"/>
    <testResult status="fail" testName="format-number-002"/>
    <testResult status="fail" testName="format-number-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
index 6f480ca38..2d6f02529 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:36Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:04Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
    <testResult status="pass" testName="key-001"/>
    <testResult status="fail" testName="key-002"/>
    <testResult status="pass" testName="key-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
index 9bca64975..141bbaa90 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:35Z" fail="11" name="position" pass="126" skipped="0" statusUnknown="1" totalRun="138">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:03Z" fail="11" name="position" pass="126" skipped="0" statusUnknown="1" totalRun="138">
    <testResult status="pass" testName="position-0101"/>
    <testResult status="fail" testName="position-0102"/>
    <testResult status="fail" testName="position-0103">
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
index c1b5e0863..469374b44 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:36Z" fail="4" name="root" pass="6" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:04Z" fail="4" name="root" pass="6" skipped="0" statusUnknown="0" totalRun="10">
    <testResult status="fail" testName="root-0101"/>
    <testResult status="fail" testName="root-0102"/>
    <testResult status="pass" testName="root-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
index d99a029e6..ee012c7c7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:35Z" fail="17" name="analyze-string" pass="36" skipped="5" statusUnknown="0" totalRun="58">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:04Z" fail="17" name="analyze-string" pass="36" skipped="5" statusUnknown="0" totalRun="58">
    <testResult status="pass" testName="analyze-string-001"/>
    <testResult status="pass" testName="analyze-string-002"/>
    <testResult status="pass" testName="analyze-string-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
index c6bef99af..c0f8bfdb7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:49Z" fail="29" name="apply-templates" pass="19" skipped="2" statusUnknown="0" totalRun="50">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:14Z" fail="29" name="apply-templates" pass="19" skipped="2" statusUnknown="0" totalRun="50">
    <testResult status="fail" testName="apply-templates-001">
       <outResult>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
 &#13;
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
index 4a24fa723..1a372441a 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:50Z" fail="21" name="attribute" pass="8" skipped="0" statusUnknown="1" totalRun="30">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:16Z" fail="21" name="attribute" pass="8" skipped="0" statusUnknown="1" totalRun="30">
    <testResult status="fail" testName="attribute-0001"/>
    <testResult status="fail" testName="attribute-0002">
       <outResult/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
index 5522ca79a..f7f1630a2 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:50Z" fail="14" name="call-template" pass="27" skipped="1" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:16Z" fail="14" name="call-template" pass="27" skipped="1" statusUnknown="0" totalRun="42">
    <testResult status="fail" testName="call-template-0001">
       <outResult>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;out/&gt;</outResult>
    </testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
index 8461e2aef..9f8a8d87b 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:51Z" fail="6" name="choose" pass="17" skipped="0" statusUnknown="1" totalRun="24">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:16Z" fail="6" name="choose" pass="17" skipped="0" statusUnknown="1" totalRun="24">
    <testResult status="pass" testName="choose-0101"/>
    <testResult status="pass" testName="choose-0102"/>
    <testResult status="fail" testName="choose-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
index 4c6fb748f..45cbcac2e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:52Z" fail="43" name="copy" pass="16" skipped="0" statusUnknown="1" totalRun="60">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:18Z" fail="43" name="copy" pass="16" skipped="0" statusUnknown="1" totalRun="60">
    <testResult status="fail" testName="copy-0101"/>
    <testResult status="pass" testName="copy-0102"/>
    <testResult status="fail" testName="copy-0103"/>
@@ -263,7 +263,7 @@
       <outResult>
          <errTrace>XTSE0010 : an instruction xsl:where-populated is not known to the XSLT processor.</errTrace>
          <errTrace>ERROR! Unknown op code: 0</errTrace>
-         <errTrace>java.lang.ArrayIndexOutOfBoundsException</errTrace>
+         <errTrace>java.lang.ArrayIndexOutOfBoundsException: -1</errTrace>
       </outResult>
    </testResult>
    <testResult status="fail" testName="copy-1214">
@@ -275,7 +275,7 @@
       <outResult>
          <errTrace>XTTE0570 : The xs:string value 'Boo!' cannot be cast to a type node().</errTrace>
          <errTrace>ERROR! Unknown op code: 0</errTrace>
-         <errTrace>java.lang.ArrayIndexOutOfBoundsException</errTrace>
+         <errTrace>java.lang.ArrayIndexOutOfBoundsException: -1</errTrace>
       </outResult>
    </testResult>
    <testResult testName="copy-1216"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
index 99acc8eb6..42242271e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="18" name="element" pass="11" skipped="0" statusUnknown="0" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:23Z" fail="18" name="element" pass="11" skipped="0" statusUnknown="0" totalRun="29">
    <testResult status="fail" testName="element-0001">
       <outResult/>
    </testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
index 4e7c8186d..cb27fa2df 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:49Z" fail="27" name="for-each-group" pass="46" skipped="4" statusUnknown="1" totalRun="78">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:14Z" fail="27" name="for-each-group" pass="46" skipped="4" statusUnknown="1" totalRun="78">
    <testResult status="pass" testName="for-each-group-001"/>
    <testResult status="skipped" xsltVersion="2.0 only"/>
    <testResult status="pass" testName="for-each-group-002"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
index 8861eddc1..9e972cf54 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:53Z" fail="32" name="iterate" pass="11" skipped="0" statusUnknown="1" totalRun="44">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:20Z" fail="32" name="iterate" pass="11" skipped="0" statusUnknown="1" totalRun="44">
    <testResult status="pass" testName="iterate-001"/>
    <testResult status="pass" testName="iterate-002"/>
    <testResult status="pass" testName="iterate-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
index 37ca83e38..df5bfa713 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:53Z" fail="19" name="sequence" pass="7" skipped="0" statusUnknown="1" totalRun="27">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:20Z" fail="19" name="sequence" pass="7" skipped="0" statusUnknown="1" totalRun="27">
    <testResult status="fail" testName="sequence-0101"/>
    <testResult status="fail" testName="sequence-0102"/>
    <testResult status="pass" testName="sequence-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
index d43b31a0e..5464502a8 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:55Z" fail="44" name="sort" pass="35" skipped="0" statusUnknown="1" totalRun="80">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:23Z" fail="44" name="sort" pass="35" skipped="0" statusUnknown="1" totalRun="80">
    <testResult status="pass" testName="sort-001"/>
    <testResult status="pass" testName="sort-002"/>
    <testResult status="fail" testName="sort-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
index d5c424c27..447473515 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:50Z" fail="26" name="try" pass="11" skipped="5" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:15Z" fail="26" name="try" pass="11" skipped="5" statusUnknown="0" totalRun="42">
    <testResult status="pass" testName="try-001"/>
    <testResult status="fail" testName="try-002">
       <outResult/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
index 22dd60c7c..c6cb178cf 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:37Z" fail="13" name="xsl-document" pass="12" skipped="0" statusUnknown="0" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:05Z" fail="13" name="xsl-document" pass="12" skipped="0" statusUnknown="0" totalRun="25">
    <testResult status="pass" testName="xsl-document-0101"/>
    <testResult status="fail" testName="xsl-document-0102">
       <outResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
index 78d2df373..fe4d65701 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:23:37Z" fail="12" name="regex" pass="33" skipped="0" statusUnknown="0" totalRun="45">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:05Z" fail="12" name="regex" pass="33" skipped="0" statusUnknown="0" totalRun="45">
    <testResult status="pass" testName="regex-001"/>
    <testResult status="fail" testName="regex-002"/>
    <testResult status="pass" testName="regex-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
index bd85a89b4..a02fb3b49 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="24" name="boolean" pass="88" skipped="0" statusUnknown="0" totalRun="112">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:30Z" fail="24" name="boolean" pass="88" skipped="0" statusUnknown="0" totalRun="112">
    <testResult status="pass" testName="boolean-001"/>
    <testResult status="pass" testName="boolean-002"/>
    <testResult status="pass" testName="boolean-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
index bf960567a..fe9b8efcd 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:22:00Z" fail="47" name="date" pass="37" skipped="0" statusUnknown="1" totalRun="85">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:31Z" fail="47" name="date" pass="37" skipped="0" statusUnknown="1" totalRun="85">
    <testResult status="pass" testName="date-001"/>
    <testResult status="pass" testName="date-002"/>
    <testResult status="pass" testName="date-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
index 2e4c273ac..6e7092efd 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:21:59Z" fail="17" name="node" pass="15" skipped="0" statusUnknown="0" totalRun="32">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:31Z" fail="17" name="node" pass="15" skipped="0" statusUnknown="0" totalRun="32">
    <testResult status="pass" testName="node-0101"/>
    <testResult status="pass" testName="node-0201"/>
    <testResult status="fail" testName="node-0301">
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
index 5d259bcc6..200964431 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T12:22:00Z" fail="8" name="string" pass="128" skipped="0" statusUnknown="0" totalRun="136">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:17:31Z" fail="8" name="string" pass="128" skipped="0" statusUnknown="0" totalRun="136">
    <testResult status="pass" testName="string-001"/>
    <testResult status="pass" testName="string-002"/>
    <testResult status="pass" testName="string-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
index bfe0dd289..9e0eaf8c5 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<testResult dateTime="2025-06-27T12:23:54Z" desc="W3C XSLT 3.0 test suite results" fail="793" pass="1363" skipped="38" success="62.97%" totalRun="2225" xslt_processor="Xalan-J XSLT 3.0 development code">
+<testResult dateTime="2025-06-27T17:20:23Z" desc="W3C XSLT 3.0 test suite results" fail="793" pass="1363" skipped="38" success="62.97%" totalRun="2225" xslt_processor="Xalan-J XSLT 3.0 development code">
   <attr>
     <as fail="53" pass="51" skipped="4" success="50.46%" totalRun="109"/>
     <avt fail="14" pass="21" skipped="0" success="60.0%" totalRun="35"/>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org