Activity log for bug #1025914

Date Who What changed Old value New value Message
2012-07-17 22:05:43 Darko S bug added bug
2012-09-20 13:03:19 Rex Tsai bug added subscriber Rex Tsai
2012-09-20 13:03:21 Launchpad Janitor java-wrappers (Ubuntu): status New Confirmed
2012-09-20 14:02:18 Rex Tsai attachment added debdiff.patch https://bugs.launchpad.net/ubuntu/+source/java-wrappers/+bug/1025914/+attachment/3325123/+files/debdiff.patch
2012-09-20 14:02:26 Rex Tsai java-wrappers (Ubuntu): status Confirmed In Progress
2012-09-20 14:03:59 Launchpad Janitor branch linked lp:~chihchun/ubuntu/precise/java-wrappers/java-wrappers-lp1025914
2012-09-20 14:05:35 Rex Tsai bug added subscriber Ubuntu Stable Release Updates Team
2012-09-20 14:08:19 Rex Tsai description UBUNTU RELEASE (cat /etc/lsb-release) DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS" PACKAGES ii freemind 0.9.0+dfsg-1 Java Program for creating and viewing Mindmaps ii java-wrappers 0.1.24 wrappers for java executables When /etc/alternatives/java points to java runtime installed in /opt (example may be /opt/ibm-java-i386-60/bin/java), then in /usr/lib/java-wrappers/jvm-list.sh emply value is assigned to __jvm_alt in following assignment: __jvm_alt=$(readlink /etc/alternatives/java|sed -n 's/\(\/usr\/lib\/jvm\/[^\/]*\)\/.*/\1/p') Reason is that bacause sed expression did not match path in /opt/..., no substitution is made, and such sed statement prints pattern space only if substitution is made. Therefore in /usr/lib/java-wrappers/java-wrappers.sh fgrep in following code always succeeds and JAVA_HOME is set to empty: if echo "$DIRS" | fgrep "$__jvm_alt" > /dev/null ; then JAVA_HOME="$__jvm_alt" java_debug "Picking up the JVM designated by the alternatives system: " java_debug " JAVA_HOME = '$JAVA_HOME'" else # And pick up the first one that works reasonably for dir in $DIRS; do if [ -x $dir/bin/java ]; then JAVA_HOME=$dir break; fi done fi This eventually leads to this abnormal exit: if [ "$JAVA_HOME" ] ; then # ... omitted ... else java_warning "No java runtime was found" return 1; fi Hence other packages that use java-wrappers, e.g. freemind, experience other failures because java-wrappers failure. In example of freemind, it will not start at all. [Impact] java-wrappers failed to find java runtime installed in /opt, which caused all java-based program failed to launch, if the user installed java runtime from Oracle. apt-cache rdepends java-wrappers java-wrappers Reverse Depends: freemind worldwind jajuk weka umlet sweethome3d statsvn statcvs sqlline pdfsam opticalraytracer latexdraw jxplorer jsymphonic jmeter jftp jeuclid-mathviewer jeuclid-cli jedit jardiff jalview jabref hdfview freeplane freemind freecol elki electric checkstyle bnd basex azureus yui-compressor libfop-java libbatik-java [Test Case] UBUNTU RELEASE (cat /etc/lsb-release) DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS" PACKAGES ii freemind 0.9.0+dfsg-1 Java Program for creating and viewing Mindmaps ii java-wrappers 0.1.24 wrappers for java executables When /etc/alternatives/java points to java runtime installed in /opt (example may be /opt/ibm-java-i386-60/bin/java), then in /usr/lib/java-wrappers/jvm-list.sh emply value is assigned to __jvm_alt in following assignment: __jvm_alt=$(readlink /etc/alternatives/java|sed -n 's/\(\/usr\/lib\/jvm\/[^\/]*\)\/.*/\1/p') Reason is that bacause sed expression did not match path in /opt/..., no substitution is made, and such sed statement prints pattern space only if substitution is made. Therefore in /usr/lib/java-wrappers/java-wrappers.sh fgrep in following code always succeeds and JAVA_HOME is set to empty:  if echo "$DIRS" | fgrep "$__jvm_alt" > /dev/null ; then      JAVA_HOME="$__jvm_alt"      java_debug "Picking up the JVM designated by the alternatives system: "      java_debug " JAVA_HOME = '$JAVA_HOME'"  else         # And pick up the first one that works reasonably      for dir in $DIRS; do   if [ -x $dir/bin/java ]; then       JAVA_HOME=$dir       break;   fi      done  fi This eventually leads to this abnormal exit:     if [ "$JAVA_HOME" ] ; then  # ... omitted ...     else  java_warning "No java runtime was found"  return 1;     fi Hence other packages that use java-wrappers, e.g. freemind, experience other failures because java-wrappers failure. In example of freemind, it will not start at all.
2012-09-26 14:24:50 Rex Tsai java-wrappers (Ubuntu): assignee Rex Tsai (chihchun)
2013-09-23 09:55:50 Rex Tsai java-wrappers (Ubuntu): assignee Rex Tsai (chihchun)