-
Bug
-
Resolution: Unresolved
-
P2
-
26
-
Cause Known
The JCK test throw several java.lang.StringIndexOutOfBoundsException.
The test passed withJDK-8363972 changes backed out.
I used -Xint as VM option to run test in Interpreter only to exclude effects from JIT compilation.
$ $STABLE_JAVA/bin/java -jar ${JCK_EXTRA_HOME}/jck4jdk.jar -jck:${JCK_RUNTIME_HOME} -testjdk:${TESTED_JAVA} -workDir:results -extra:${JCK_EXTRA_HOME} -concurrency 1 -verbose -vmoptions:"-Xint" api/java_text/DecimalFormat/Parse.html
[jck4jdk] Using Extra: /scratch/my/JCK26/JCK-extra-26/binaries/linux-amd64/config/runtime-multiJVMgroup-noagent-Linux.jti
[jck4jdk] Using JCK: /scratch/my/JCK26/JCK-runtime-26
Aug 28, 2025, 3:42:00 PM Harness starting test run with configuration "jck_runtime_linux"...
FAILED: api/java_text/DecimalFormat/Parse.html (test cases: 45; passed: 38; failed: 7; first test case failure: DecimalFormat0180)
Aug 28, 2025, 3:42:05 PM Finished executing all tests, wait for cleanup...
Aug 28, 2025, 3:42:05 PM Harness done with cleanup from test run.
Total time: 5 seconds
Setup time: 0 seconds
Cleanup time: 0 seconds
Tests found in the suite: 123,441
Test results: failed: 1
Results written to /scratch/kvn/JCK26/results
Error: Some tests did not pass
----
From test output:
java.lang.StringIndexOutOfBoundsException: Index -2147483648 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.lang.String.checkIndex(String.java:4917)
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:45)
at java.base/java.lang.String.charAt(String.java:1637)
at java.base/java.text.DecimalFormat.matchAffix(DecimalFormat.java:3535)
at java.base/java.text.DecimalFormat.subparse(DecimalFormat.java:2396)
at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2250)
at javasoft.sqe.tests.api.java.text.DecimalFormat.ParseTests.DecimalFormat0180(ParseTests.java:1562)
The test passed with
I used -Xint as VM option to run test in Interpreter only to exclude effects from JIT compilation.
$ $STABLE_JAVA/bin/java -jar ${JCK_EXTRA_HOME}/jck4jdk.jar -jck:${JCK_RUNTIME_HOME} -testjdk:${TESTED_JAVA} -workDir:results -extra:${JCK_EXTRA_HOME} -concurrency 1 -verbose -vmoptions:"-Xint" api/java_text/DecimalFormat/Parse.html
[jck4jdk] Using Extra: /scratch/my/JCK26/JCK-extra-26/binaries/linux-amd64/config/runtime-multiJVMgroup-noagent-Linux.jti
[jck4jdk] Using JCK: /scratch/my/JCK26/JCK-runtime-26
Aug 28, 2025, 3:42:00 PM Harness starting test run with configuration "jck_runtime_linux"...
FAILED: api/java_text/DecimalFormat/Parse.html (test cases: 45; passed: 38; failed: 7; first test case failure: DecimalFormat0180)
Aug 28, 2025, 3:42:05 PM Finished executing all tests, wait for cleanup...
Aug 28, 2025, 3:42:05 PM Harness done with cleanup from test run.
Total time: 5 seconds
Setup time: 0 seconds
Cleanup time: 0 seconds
Tests found in the suite: 123,441
Test results: failed: 1
Results written to /scratch/kvn/JCK26/results
Error: Some tests did not pass
----
From test output:
java.lang.StringIndexOutOfBoundsException: Index -2147483648 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.lang.String.checkIndex(String.java:4917)
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:45)
at java.base/java.lang.String.charAt(String.java:1637)
at java.base/java.text.DecimalFormat.matchAffix(DecimalFormat.java:3535)
at java.base/java.text.DecimalFormat.subparse(DecimalFormat.java:2396)
at java.base/java.text.DecimalFormat.parse(DecimalFormat.java:2250)
at javasoft.sqe.tests.api.java.text.DecimalFormat.ParseTests.DecimalFormat0180(ParseTests.java:1562)
- caused by
-
JDK-8363972 Lenient parsing of minus sign pattern in DecimalFormat/CompactNumberFormat
-
- Resolved
-
- links to
-
Review(master) openjdk/jdk/27014