< prev index next >
src/java.base/share/classes/java/lang/VersionProps.java.template
Print this page
rev 14912 : 8160564: TEST: Add a test to check the implementation of VersionProps.versionNumbers()
Reviewed-by: mchung, redestad
*** 65,89 ****
System.setProperty("java.version", java_version);
System.setProperty("java.runtime.version", java_runtime_version);
System.setProperty("java.runtime.name", java_runtime_name);
}
! static List<Integer> versionNumbers() {
List<Integer> versionNumbers = new ArrayList<>(4);
int prevIndex = 0;
! int index = VERSION_NUMBER.indexOf('.');
while (index > 0) {
versionNumbers.add(
! Integer.parseInt(VERSION_NUMBER, prevIndex, index, 10));
prevIndex = index + 1; // Skip the period
! index = VERSION_NUMBER.indexOf('.', prevIndex);
}
! versionNumbers.add(Integer.parseInt(VERSION_NUMBER,
! prevIndex, VERSION_NUMBER.length(), 10));
return versionNumbers;
}
static Optional<String> pre() {
return optionalOf(VERSION_PRE);
}
static Optional<Integer> build() {
--- 65,110 ----
System.setProperty("java.version", java_version);
System.setProperty("java.runtime.version", java_runtime_version);
System.setProperty("java.runtime.name", java_runtime_name);
}
! private static void check(String s, int prevIndex, int index) {
! if (index - prevIndex > 1 &&
! Character.digit(s.charAt(prevIndex), 10) <= 0)
! throw new IllegalArgumentException("Leading zeros not supported (" +
! s.substring(prevIndex, index) + ")");
! }
!
! // This method is reflectively regression tested from
! // test/java/lang/Runtime/Version/VersionProps.java
! // If you rename or remove this method, please update the test accordingly.
! static List<Integer> parseVersionNumbers(String versionNumber) {
List<Integer> versionNumbers = new ArrayList<>(4);
int prevIndex = 0;
! int index = versionNumber.indexOf('.');
while (index > 0) {
+ check(versionNumber, prevIndex, index);
versionNumbers.add(
! Integer.parseInt(versionNumber, prevIndex, index, 10));
prevIndex = index + 1; // Skip the period
! index = versionNumber.indexOf('.', prevIndex);
}
! check(versionNumber, prevIndex, versionNumber.length());
! versionNumbers.add(Integer.parseInt(versionNumber,
! prevIndex, versionNumber.length(), 10));
!
! if (versionNumbers.get(0) == 0 || versionNumbers.get(versionNumbers.size() - 1) == 0)
! throw new IllegalArgumentException("Leading or trailing zeros not supported (" +
! versionNumbers + ")");
!
return versionNumbers;
}
+ static List<Integer> versionNumbers() {
+ return parseVersionNumbers(VERSION_NUMBER);
+ }
+
static Optional<String> pre() {
return optionalOf(VERSION_PRE);
}
static Optional<Integer> build() {
< prev index next >