[Bug 1025914] Re: java-wrappers fails ito find java runtimes installed in /opt

Rex Tsai 1025914 at bugs.launchpad.net
Mon Sep 23 09:55:50 UTC 2013


** Changed in: java-wrappers (Ubuntu)
     Assignee: Rex Tsai (chihchun) => (unassigned)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to java-wrappers in Ubuntu.
https://bugs.launchpad.net/bugs/1025914

Title:
  java-wrappers fails ito find java runtimes installed in /opt

Status in “java-wrappers” package in Ubuntu:
  In Progress

Bug description:
  [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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/java-wrappers/+bug/1025914/+subscriptions



More information about the foundations-bugs mailing list