oehme commented on a change in pull request #242: Speed up project discovery URL: https://github.com/apache/maven/pull/242#discussion_r274159320
########## File path: maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java ########## @@ -204,19 +211,33 @@ public final void parseVersion( String version ) } private static Integer getNextIntegerToken( StringTokenizer tok ) + { + String s = tok.nextToken(); + if ( ( s.length() > 1 ) && s.startsWith( "0" ) ) + { + return null; + } + return tryParseInt( s ); + } + + private static Integer tryParseInt( String s ) { try { - String s = tok.nextToken(); - if ( ( s.length() > 1 ) && s.startsWith( "0" ) ) + if ( !isParsable( s ) ) + { + return null; + } + long longValue = Long.parseLong( s ); + if ( longValue > Integer.MAX_VALUE ) Review comment: Because it throws an exception internally, which is what we're trying to avoid in the first place here. We don't want to throw exceptions on common code paths. Also, we're not changing semantics here, we are still returning an int. Going through long is only done for the very common case of big numbers that would fail with a NumberFormatException on `Integer.parseInt` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services