Bug#346224: eclipse-platform-common: eclipse starter script will not set JAVA_HOME found from /etc/eclipse/java_home

Thomas Morin tom at treizh.net
Fri Jan 6 14:45:31 UTC 2006


Package: eclipse-platform-common
Version: 3.1.1-7
Severity: normal
Tags: patch

There is a small bug in eclipse starter script : "export JAVA_HOME" is
done inside a "while" loop. But shell is tricky: the while actually creates
a subprocess, so since the export is done there, it doesn't impact the
rest of the script. Thus JAVA_HOME will remain unset.

Result is this (if JAVA_HOME is not set elsewhere):
+ '[' -z '' ']'
+ echo 'searching for compatible vm...'
searching for compatible vm...
+ cat /etc/eclipse/java_home
+ grep -v '^#'
+ grep -v '^$'
+ read JAVA_HOME
+ echo -n '  testing /usr/lib/j2sdk1.5-sun...'
  testing /usr/lib/j2sdk1.5-sun...+ '[' -x
/usr/lib/j2sdk1.5-sun/bin/java ']'
+ export JAVA_HOME
+ echo found
found
+ break

# If we don't have a JAVA_HOME yet, we're doomed.
if [ -z "${JAVA_HOME}" ]; then
    zenity \
        --error \
        --title="Could not launch Eclipse Platform" \
        --text="A suitable Java Virtual Machine for running the Eclipse
Platform could not be located."
    exit 1
fi
+ '[' -z '' ']'
+ zenity --error '--title=Could not launch Eclipse Platform' '--text=A
suitable Java Virtual Machine for running the Eclipse Platform could not
be located.'
+ exit 1



A simple fix is to replace the 'while' loop by a 'for' loop:

--- /usr/bin/eclipse.orig       2006-01-06 15:31:34.000000000 +0100
+++ /usr/bin/eclipse    2006-01-06 15:32:19.000000000 +0100
@@ -65,8 +65,8 @@
 # and pick the first one that exists.
 if [ -z "${JAVA_HOME}" ]; then
     echo "searching for compatible vm..."
-    cat /etc/eclipse/java_home | grep -v '^#' | grep -v '^$' | \
-    while read JAVA_HOME; do
+    for JAVA_HOME in $(cat /etc/eclipse/java_home | grep -v '^#' | grep
-v '^$' );
+    do
         echo -n "  testing ${JAVA_HOME}..."
         if [ -x "${JAVA_HOME}/bin/java" ]; then
             export JAVA_HOME

(This won't work if some path contain a space)


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-nitro2
Locale: LANG=fr_FR at euro, LC_CTYPE=fr_FR at euro (charmap=ISO-8859-15)

Versions of packages eclipse-platform-common depends on:
ii  gij-4.0 [java1-runtime]   4.0.2-6        The GNU Java bytecode interpreter
ii  java-common               0.23           Base of all Java packages
ii  java-gcj-compat           1.0.47-1       Java runtime environment using
GIJ
ii  sun-j2sdk1.5 [java-common 1.5.0+update05 Java(TM) 2 SDK, Standard Edition,
ii  zenity                    2.12.1-1       Display graphical dialog boxes
fro

eclipse-platform-common recommends no packages.

-- no debconf information






More information about the pkg-java-maintainers mailing list