You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Alexey Zotov (Jira)" <ji...@apache.org> on 2021/07/07 18:39:00 UTC

[jira] [Commented] (CASSANDRA-14325) Java executable check succeeds despite no java on PATH

    [ https://issues.apache.org/jira/browse/CASSANDRA-14325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17376785#comment-17376785 ] 

Alexey Zotov commented on CASSANDRA-14325:
------------------------------------------

The patch looks good to me, however, I have two small comments:
 1. Even though the patch's logic seems to be working perfectly well, I feel the same can be achieved in a bit more compact way:
{code:java}
diff --git a/bin/cassandra.in.sh b/bin/cassandra.in.sh
index 58b4dd2896..5d13cdae70 100644
--- a/bin/cassandra.in.sh
+++ b/bin/cassandra.in.sh
@@ -95,7 +95,7 @@ if [ -n "$JAVA_HOME" ]; then
         fi
     done
 else
-    JAVA=java
+    JAVA=`command -v java 2> /dev/null`
 fi
 
 if [ -z $JAVA ] ; then
{code}
If there is no _java_ executable available then _JAVA_ variable will be empty and _if [ -z $JAVA ]_ condition will match to trigger the error.

2. I can see two more similar scripts and I believe they need to be updated as well:
{code:java}
redhat/cassandra.in.sh
tools/bin/cassandra.in.sh
{code}
 

PS:
I'm not a project committer. I've just chimed in after seeing [~blerer]'s email seeking for reviewers.

 

> Java executable check succeeds despite no java on PATH
> ------------------------------------------------------
>
>                 Key: CASSANDRA-14325
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14325
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Startup and Shutdown
>            Reporter: Angelo Polo
>            Assignee: Angelo Polo
>            Priority: Low
>             Fix For: 3.0.x, 3.11.x, 4.0.x
>
>         Attachments: bin_cassandra.patch
>
>
> The check -z $JAVA on line 102 of bin/cassandra currently always succeeds if JAVA_HOME is not set since in this case JAVA gets set directly to 'java'. The error message "_Unable to find java executable. Check JAVA_HOME and PATH environment variables._" will never be echoed on a PATH misconfiguration. If java isn't on the PATH the failure will instead occur on line 95 of cassandra-env.sh at the java version check.
> It would be better to check consistently for the java executable in one place in bin/cassandra. Also we don't want users to mistakenly think they have a java version problem when they in fact have a PATH problem.
> See proposed patch.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org