That’s a great idea to add a test patching VersionProps generated with different version strings.
We should file a JBS issue and add such a new test. Mandy > On Jun 28, 2016, at 9:07 AM, Daniel Fuchs <daniel.fu...@oracle.com> wrote: > > Hi, > > WRT to testing - one thing that could be done (possibly in a > followup patch) would be: > > class VersionProps { > > ... > > static List<Integer> parseVersionNumbers(String versionNumber) { > // parsing code goes there > } > > static List<Integer> versionNumbers() { > return parseVersionNumbers(VERSION_NUMBER); > } > > ... > } > > that would allow writing/adding a unit test for the algorithm > implemented in parseVersionNumbers (either using white-box > with -Xpatch or using reflection and the proper > incantations to invoke parseVersionNumbers from outside the > package). > > cheers, > > -- daniel > > > On 28/06/16 15:57, Volker Simonis wrote: >> Hi, >> >> can somebody please review this trivial fix: >> >> http://cr.openjdk.java.net/~simonis/webrevs/2016/8160457/ >> https://bugs.openjdk.java.net/browse/JDK-8160457 >> >> The problem is that VersionProps.versionNumbers() incorrectly parses a >> Java version string because it doesn't skip the separating dots. The >> current version only works for one digit versions like "9" but will >> fail for any longer version string like for example "9.0.0.1" with: >> >> at >> java.lang.NumberFormatException.forInputString(java.base@9.0.0.1-internal/NumberFormatException.java:65) >> at >> java.lang.Integer.parseInt(java.base@9.0.0.1-internal/Integer.java:791) >> at >> java.lang.VersionProps.versionNumbers(java.base@9.0.0.1-internal/VersionProps.java:76) >> at >> java.lang.Runtime.version(java.base@9.0.0.1-internal/Runtime.java:940) >> >> This also breaks the build which uses a newly built jdk for >> bootstrapping if we set '--with-version-patch=1' for example. >> >> An can you PLEASE, PLEASE finally do your internal/early access builds >> with '--with-version-patch=1'. It seems really careless to me that you >> introduce a new, up to four digit versioning schema but only test the >> shortcut version with one digit. I wouldn't be surprised if a version >> like "9.0.0.1" breaks more Java applications than the sun.misc.Unsafe >> removal :) >> >> Thank you and best regards, >> Volker >> >