8062923: XSL: Run-time internal error in 'substring()'

8062924: XSL: wrong answer from substring() function

Reviewed-by: joehw
This commit is contained in:
Aleksei Efimov 2015-01-26 12:17:59 +03:00
parent 4775e0767d
commit 73a00f6b2f

@ -270,8 +270,8 @@ public final class BasisLibrary {
if (Double.isNaN(start))
return(EMPTYSTRING);
final int strlen = value.length();
int istart = (int)Math.round(start) - 1;
final int strlen = value.length();
int istart = (int)Math.round(start) - 1;
if (istart > strlen)
return(EMPTYSTRING);
@ -292,10 +292,11 @@ public final class BasisLibrary {
public static String substringF(String value, double start, double length) {
if (Double.isInfinite(start) ||
Double.isNaN(start) ||
Double.isNaN(length))
Double.isNaN(length) ||
length < 0)
return(EMPTYSTRING);
int istart = (int)Math.round(start) - 1;
int istart = (int)Math.round(start) - 1;
final int isum;
if (Double.isInfinite(length))
isum = Integer.MAX_VALUE;