Masalah zona waktu OpenJDK: sun.util.calendar.ZoneInfoFile.getZoneIDs


3

Saya menggunakan Ubuntu 12,04 LTS dan baru-baru ini menginstal openjdk-7-jdk menggunakan apt-get. Untuk sementara semua tampak baik-baik saja, tetapi saya menyadari salah satu proyek saya mulai rusak dengan tumpukan berikut:

java.lang.NullPointerException
sun.util.calendar.ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:790)
sun.util.calendar.ZoneInfo.getAvailableIDs(ZoneInfo.java:601)
java.util.TimeZone.getAvailableIDs(TimeZone.java:580)
mpeg.psi.TOT.parseMJD(TOT.java:136)

Googli'n sekitar Saya telah menemukan orang lain dengan masalah yang sama, menunjukkan bug di alat tzupdater.jar dari Oracle. Seharusnya bukan kasus saya, tapi saya mencoba perbaikan yang disarankan, memeriksa dan mengacaukan izin "lrwxrwxrwx 1 root 27 Set 20 08:59 / usr / lib / jvm / java-7-openjdk-amd64 / jre / lib / zi - & gt; ../../../../../share/javazi "dan menjalankan tzupdater. Entah bagaimana saya memperbaikinya, tetapi beberapa pembaruan kemudian merusaknya lagi.

Saya memutuskan untuk menjadi radikal saat itu:

$> sudo apt-get purge openjdk-6-jre openjdk-6-jre-lib  openjdk-7-jre-headless openjdk-7-jre-lib openjdk-7-jre openjdk-6-jre-headless java-common
$> sudo apt-get install openjdk-6-jdk ant jdownloader java-common
$> sudo apt-get install tzdata-java
tzdata-java is already the newest version.

Masih buggy :(

Sekarang saya kehabisan ide. Kode yang memecah ini adalah: TimeZone.getAvailableIDs (-3 * 60 * 60 * 1000); Yaitu, saya ingin mendapatkan GMT-3 untuk mengonversi set angka (rumah, menit, hari ...) menjadi Tanggal:

    gc.set(GregorianCalendar.YEAR, year);
    gc.set(GregorianCalendar.MONTH, month - 1);

Adakah tip tentang cara memperbaiki Java TZ atau cara mem-bypass masalah pada kode java?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.