You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ja...@apache.org on 2022/11/17 00:48:40 UTC

[ant] branch master updated: Fix detection of java.specification.version

This is an automated email from the ASF dual-hosted git repository.

jaikiran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git


The following commit(s) were added to refs/heads/master by this push:
     new c8f579577 Fix detection of java.specification.version
     new 4b7965dc6 Merge pull request #195 from keithc-ca/version
c8f579577 is described below

commit c8f579577d381afa7ae594c38c094777fdc0c141
Author: Keith W. Campbell <ke...@ca.ibm.com>
AuthorDate: Wed Nov 16 13:08:20 2022 -0500

    Fix detection of java.specification.version
    
    Signed-off-by: Keith W. Campbell <ke...@ca.ibm.com>
---
 src/script/ant | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/script/ant b/src/script/ant
index cfeb2759f..ebc5e95ef 100644
--- a/src/script/ant
+++ b/src/script/ant
@@ -369,11 +369,18 @@ else
   fi
 fi
 # Run "java -XshowSettings:properties" and check the output for "java.specification.version" value
-JAVA_SPEC_VERSION=$("$JAVACMD" -XshowSettings:properties 2>&1 | grep "java.specification.version = " | tr -d '[:space:]java.specification.version=')
-if [ "$JAVA_SPEC_VERSION" -ge 18 ]; then
-  # set security manager property to allow calls to System.setSecurityManager() at runtime
-  ANT_OPTS="$ANT_OPTS -Djava.security.manager=allow"
-fi
+JAVA_SPEC_VERSION=$("$JAVACMD" -XshowSettings:properties 2>&1 | sed -n -e 's/[[:space:]]//g' -e 's/^java\.specification\.version=//p')
+case "$JAVA_SPEC_VERSION" in
+  1.*)
+    # Up to and including Java 8, versions are reported as 1.N.
+    ;;
+  *)
+    if [ "$JAVA_SPEC_VERSION" -ge 18 ]; then
+      # set security manager property to allow calls to System.setSecurityManager() at runtime
+      ANT_OPTS="$ANT_OPTS -Djava.security.manager=allow"
+    fi
+    ;;
+esac
 ant_exec_command="exec \"\$JAVACMD\" $ANT_OPTS -classpath \"\$LOCALCLASSPATH\" -Dant.home=\"\$ANT_HOME\" -Dant.library.dir=\"\$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"\$CLASSPATH\""
 if $ant_exec_debug; then
   # using printf to avoid echo line continuation and escape interpretation confusion