← Back to team overview

openjdk team mailing list archive

Bug#640476: openjdk-6-jre-lib: Breaks a mixed-version Java installation (needs tighter dependencies?)

 

Package: openjdk-6-jre-lib
Version: 6b23~pre9-1
Severity: normal

In my current installation (using pre9-1 of this package but pre8-1 of
everything else), Java programs using printf are broken.  For example:

$ cat test.java
public class test {
    public static void main(String [] args) {
        System.out.printf("%s, world!\n", "Hello");
    }
}
$ javac test.java
$ java test
Exception in thread "main" java.lang.InternalError
	at java.util.Currency$1.run(Currency.java:209)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.util.Currency.<clinit>(Currency.java:177)
	at java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:559)
	at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:94)
	at java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:157)
	at java.util.Formatter.setZero(Formatter.java:2212)
	at java.util.Formatter.init(Formatter.java:1838)
	at java.util.Formatter.<init>(Formatter.java:1868)
	at java.io.PrintStream.format(PrintStream.java:936)
	at java.io.PrintStream.printf(PrintStream.java:838)
	at test.main(test.java:3)
Caused by: java.io.FileNotFoundException: /usr/lib/jvm/java-6-openjdk/jre/lib/currency.data (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:137)
	at java.io.FileInputStream.<init>(FileInputStream.java:96)
	at java.util.Currency$1.run(Currency.java:183)
	... 11 more
$ 

If I downgrade this package to 6b23~pre8-1, the problem vanishes:

$ sudo dpkg -i /var/cache/apt/archives/openjdk-6-jre-lib_6b23~pre8-2_all.deb 
dpkg: warning: downgrading openjdk-6-jre-lib from 6b23~pre9-1 to 6b23~pre8-2.
(Reading database ... 309414 files and directories currently installed.)
Preparing to replace openjdk-6-jre-lib 6b23~pre9-1 (using .../openjdk-6-jre-lib_6b23~pre8-2_all.deb) ...
Unpacking replacement openjdk-6-jre-lib ...
Setting up openjdk-6-jre-lib (6b23~pre8-2) ...
$ javac test.java
$ java test
Hello, world!
$ 

I suspect if I upgraded the rest of my Java installation, it would cure the
problem as well, but I am unwilling to do so as it would require me to
uninstall the Java plugin (a temporary circumstance, I hope).

It looks to me like this package should not be upgraded without the rest of the
Java system, yet apt and dpkg are happy to do so (and, indeed, did).  Perhaps
this package needs to declare a Breaks relationship with some older packages?

My package versions (after that downgrade):
$ dpkg -l openjdk\* | grep ^ii
ii  openjdk-6-doc                                                       6b23~pre9-1                          OpenJDK Development Kit (JDK) documentation
ii  openjdk-6-jdk                                                       6b23~pre8-1                          OpenJDK Development Kit (JDK)
ii  openjdk-6-jre                                                       6b23~pre8-1                          OpenJDK Java runtime, using Hotspot JIT
ii  openjdk-6-jre-headless                                              6b23~pre8-1                          OpenJDK Java runtime, using Hotspot JIT (headless)
ii  openjdk-6-jre-lib                                                   6b23~pre8-2                          OpenJDK Java runtime (architecture independent libraries)

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.4-ibid-1 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages openjdk-6-jre-lib depends on:
ii  openjdk-6-jre-headless  6b23~pre8-1

openjdk-6-jre-lib recommends no packages.

openjdk-6-jre-lib suggests no packages.

-- no debconf information