Affects Version/s: 2.7
Fix Version/s: None
Security Level: No security risk; visible to anyone (Ordinary problems in Xalan projects. Anybody can view the issue.)
An XObject as obtained via XPath.execute returns different results for each call to str, num, nodeset, or bool. This quite similar to XALANJ-1335 but I wish to emphasize calling a different function, and that the result is different.
In this case the result cannot be cached and used later as we wish to use a different result.
System.out.println( object.str() );
int number = object.num() + 5;
The second line does not work so long as the first line exists. You cannot extract multiple types from the result.
There is nothing to suggest that these functions should have side-effects, nor is it understood why they would.
This type of behaviour is vital in our TestPlan web testing suite which uses dynamic typing. We have no workaround.