[
https://issues.apache.org/jira/browse/DRILL-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15883690#comment-15883690
]
Paul Rogers commented on DRILL-5208:
------------------------------------
Solution uses a more structured approach to finding the Java command. If a
JAVA_HOME is provided, look in bin before using find. If no JAVA_HOME, but the
java command is on the class path, then use that command (after resolving sym
links) as the command. Only if these fail will we resort to using "find."
This should ensure we use the JDK java when both a JDK and JRE exist in the
same JAVA_HOME.
> Finding path to java executable should be deterministic
> -------------------------------------------------------
>
> Key: DRILL-5208
> URL: https://issues.apache.org/jira/browse/DRILL-5208
> Project: Apache Drill
> Issue Type: Bug
> Components: Tools, Build & Test
> Affects Versions: 1.10.0
> Reporter: Krystal
> Assignee: Paul Rogers
> Priority: Minor
>
> Command to find JAVA in drill-config.sh is not deterministic.
> drill-config.sh uses the following command to find JAVA:
> JAVA=`find -L "$JAVA_HOME" -name $JAVA_BIN -type f | head -n 1`
> On one of my node the following command returned 2 entries:
> find -L $JAVA_HOME -name java -type f
> /usr/local/java/jdk1.7.0_67/jre/bin/java
> /usr/local/java/jdk1.7.0_67/bin/java
> On another node, the same command returned entries in different order:
> find -L $JAVA_HOME -name java -type f
> /usr/local/java/jdk1.7.0_67/bin/java
> /usr/local/java/jdk1.7.0_67/jre/bin/java
> The complete command picks the first one returned which may not be the same
> on each node:
> find -L $JAVA_HOME -name java -type f | head -n 1
> /usr/local/java/jdk1.7.0_67/jre/bin/java
> If JAVA_HOME is found, we should just append the "bin/java" to the path"
> JAVA=$JAVA_HOME/bin/java
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)