commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Lowe (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DAEMON-268) jsvc fails to find java home on centos
Date Wed, 28 Nov 2012 18:06:58 GMT
Richard Lowe created DAEMON-268:
-----------------------------------

             Summary: jsvc fails to find java home on centos
                 Key: DAEMON-268
                 URL: https://issues.apache.org/jira/browse/DAEMON-268
             Project: Commons Daemon
          Issue Type: Bug
          Components: Jsvc
    Affects Versions: 1.0.11
         Environment: Oracle Java JRE 1.7.0_04
CentOS Linux 6.3, 64-bit
            Reporter: Richard Lowe
            Priority: Blocker
             Fix For: 1.0.12
         Attachments: patch.txt

Having upgraded to commons-daemon 1.0.11 from 1.0.10, we are now no longer able to start our
service because Java Home cannot be located.

In our particular use case we do not set JAVA_HOME as an environment variable but instead
specify it using the -home parameter on the jsvc command line. However I have tried using
an environment variable and the result is the same: the jsvc fails to find the Java Home directory.

Having looked at the source code, I think the error is due to [a recent change to home.c|http://svn.apache.org/viewvc/commons/proper/daemon/branches/1.0.x/src/native/unix/native/home.c?r1=1205952&r2=1412037&diff_format=h].
In particular, the following on lines 215 to 221:
{code}
if (path == NULL || *path == '\0' || *path == '/') {
   log_debug("Home not specified on command line, using environment");
   path = getenv("JAVA_HOME");
   if (path == NULL || *path == '\0' || *path == '/') {
       /* guard against empty JAVA_HOME */
       path = NULL;
   }
}
{code}
The use of '==' to compare strings here is incorrect; the strcmp() function should be used
instead. Currently, the code will fail if the first character of the path is '/', which is
invariably the case on Linux, UNIX or MacOS systems. I suspect the reason that this has not
been detected sooner is because MacOS and Ubuntu/Debian have been special-cased elsewhere
to hard-code the expected Java Home location.

For us this is a blocker so we have reverted to using 1.0.10 until it is fixed. We also have
a patch which I will attach to this issue shortly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message