src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/Sort.java
--- 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);
}
/**