When the stylesheet contains two definitions of the
same global variable with different import precedence
(that is, when a stylesheet module overrides a global
variable defined in a module that it imports), the
following error occurs:
java.lang.IllegalArgumentException: Can't define local
variable: stack is empty
Present since 6.4
Cleared in 6.4.3
Caused by incorrect coding (and testing!) of the
change introduced in 6.4 whereby global variables that
are overridden are no longer evaluated. The process()
method in XSLVariable.java should be changed to read:
public void process(Context context) throws
TransformerException
{
Bindery b = context.getBindery();
if (global) {
if (!redundant && !b.isEvaluated(this)) {
Value value = getSelectValue(context);
b.defineGlobalVariable(this, value);
}
} else {
Value value = getSelectValue(context);
b.defineLocalVariable(this, value);
}
}
Michael Kay
XSLT conformance
v6.4
Public
| Field | Old Value | Date | By |
|---|---|---|---|
| close_date | 2001-07-24 11:36 | 2001-07-24 11:37 | mhkay |
| status_id | Open | 2001-07-24 11:36 | mhkay |
| resolution_id | None | 2001-07-24 11:36 | mhkay |
| close_date | - | 2001-07-24 11:36 | mhkay |
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use