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