src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java
changeset 48697 0474300affbd
parent 48409 5ab69533994b
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java	Thu Feb 01 09:40:38 2018 -0800
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java	Thu Feb 01 15:53:51 2018 -0800
@@ -66,7 +66,7 @@
     private AttributeValue _order;
     private AttributeValue _caseOrder;
     private AttributeValue _dataType;
-    private String         _lang; // bug! see 26869
+    private AttributeValue _lang; // bug! see 26869, see XALANJ-2546
 
     private String _className = null;
     private List<VariableRefBase> _closureVars = null;
@@ -154,13 +154,11 @@
         }
         _dataType = AttributeValue.create(this, val, parser);
 
-         _lang =  getAttribute("lang"); // bug! see 26869
-  // val =  getAttribute("lang");
-  // _lang = AttributeValue.create(this, val, parser);
+        val =  getAttribute("lang");
+        _lang = AttributeValue.create(this, val, parser);
         // Get the case order; default is language dependant
-    val = getAttribute("case-order");
-    _caseOrder = AttributeValue.create(this, val, parser);
-
+        val = getAttribute("case-order");
+        _caseOrder = AttributeValue.create(this, val, parser);
     }
 
     /**
@@ -179,6 +177,7 @@
         _order.typeCheck(stable);
         _caseOrder.typeCheck(stable);
         _dataType.typeCheck(stable);
+        _lang.typeCheck(stable);
         return Type.Void;
     }
 
@@ -196,16 +195,14 @@
         _order.translate(classGen, methodGen);
     }
 
-     public void translateCaseOrder(ClassGenerator classGen,
+    public void translateCaseOrder(ClassGenerator classGen,
                    MethodGenerator methodGen) {
-    _caseOrder.translate(classGen, methodGen);
+        _caseOrder.translate(classGen, methodGen);
     }
 
     public void translateLang(ClassGenerator classGen,
                    MethodGenerator methodGen) {
-    final ConstantPoolGen cpg = classGen.getConstantPool();
-    final InstructionList il = methodGen.getInstructionList();
-    il.append(new PUSH(cpg, _lang)); // bug! see 26869
+        _lang.translate(classGen, methodGen);
     }
 
     /**