[PATCH] buildscript java version detection fails on Linux/Ubuntu on Picked up JAVA_TOOL_OPTIONS

Kevin Rushforth kevin.rushforth at oracle.com
Sat Aug 29 16:04:51 UTC 2015


Hi Maurice,

No, you cannot simply push this patch. Please refer to the OpenJDK Wiki 
[1] for information on contributing patches to OpenJFX. Additional 
information on Submitting OpenJFX bugs [2] and Code Review policies [3] 
are also on the Wiki. I note that simple patches such as this can be 
accepted without an OCA being signed (although if you want to contribute 
a non-trivial patch you will need to sign the OCA).

Everything starts out with a bug report, which you can submit if you 
like. However, in this case, I am likely to just fix this as part of 
fixing JDK-8133750 [4] since the version detection logic also needs to 
be modified for the new Java version string JEP as described in that bug 
report.

So: Either I can add your information to JDK-8133750 or you can file a 
new bug and I will link them together and fix them at the same time.

-- Kevin

[1] http://openjdk.java.net/contribute/
[2] https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report
[3] https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews
[4] https://bugs.openjdk.java.net/browse/JDK-8133750



Maurice le Rutte wrote:
> Since I haven't received any additional feedback, should I push this patch?
>
> Op 27 aug. 2015 15:56 schreef info at cuhka.com:
>   
>> I've adapted the build.gradle to use java -fullversion instead of java  
>> -version, parsing the result with a regexp. 
>>
>> diff -r 9b5fc7c1e5e6 build.gradle 
>> --- a/build.gradle Fri Aug 07 18:35:42 2015 -0700 
>> +++ b/build.gradle Thu Aug 27 15:52:11 2015 +0200 
>> @@ -719,29 +719,27 @@ 
>>   if (!file(JAVAH).exists()) throw new Exception("Missing or incorrect  
>> path to 'javah': '$JAVAH'. Perhaps bad JDK_HOME? $JDK_HOME") 
>>   if (!file(JAVADOC).exists()) throw new Exception("Missing or  
>> incorrect path to 'javadoc': '$JAVADOC'. Perhaps bad JDK_HOME?  
>> $JDK_HOME") 
>>
>> - 
>> + 
>>   // Determine the verion of Java in JDK_HOME. It looks like this: 
>>   // 
>> -// $ java -version 
>> -// java version "1.7.0_45" 
>> -// Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
>> -// Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) 
>> -// 
>> -// We need to parse the second line 
>> -def inStream = new java.io.BufferedReader(new  
>> java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA,  
>> "-version").start().getErrorStream())); 
>> +// $ java -fullversion 
>> +// for OpenJDK: openjdk full version "1.8.0_45-internal-b14" 
>> +// for Oracle JDK: java full version "1.8.0_45-b14" 
>> + 
>> +def inStream = new java.io.BufferedReader(new  
>> java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA,  
>> "-fullversion").start().getErrorStream())); 
>>   try { 
>> -    if (inStream.readLine() != null) { 
>> -        String v = inStream.readLine(); 
>> -        if (v != null) { 
>> -            int ib = v.indexOf(" (build "); 
>> -            if (ib != -1) { 
>> -                String ver = v.substring(ib + 8, v.size() - 1); 
>> - 
>> -                defineProperty("jdkRuntimeVersion", ver) 
>> -                defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) 
>> -                defineProperty("jdkBuildNumber",  
>> jdkRuntimeVersion.substring(jdkRuntimeVersion.lastIndexOf("-b") + 2)) 
>> -            } 
>> -        } 
>> +    def v = inStream.readLine(); 
>> + 
>> +    if (v != null) { 
>> + def pattern =  
>> java.util.regex.Pattern.compile("^[^\"]*\"((\\d+(?:\\.\\d+)*)_(\\d+))(?:-\\w+)?(?:-b(\\d+))\"\$") 
>> + def matcher = pattern.matcher(v) 
>> + 
>> + if (matcher.matches()) { 
>> +            defineProperty("jdkVersion", matcher.group(1)) 
>> +            defineProperty("jdkRuntimeVersion", matcher.group(2)) 
>> +            defineProperty("jdkUpdate", matcher.group(3)) 
>> +            defineProperty("jdkBuildNumber", matcher.group(4)) 
>> + } 
>>       } 
>>   } finally { 
>>       inStream.close(); 
>>
>>     


More information about the openjfx-dev mailing list