Problemas de fuso horário do OpenJDK: sun.util.calendar.ZoneInfoFile.getZoneIDs

3

Estou usando o Ubuntu 12.04 LTS e recentemente instalei o openjdk-7-jdk usando o apt-get. Por um tempo, tudo parecia bem, mas percebi que um dos meus projetos começou a quebrar com a seguinte pilha:

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 around Eu encontrei outras pessoas com problemas semelhantes, apontando para um bug na ferramenta tzupdater.jar da Oracle. Deve ser o meu caso, mas eu tentei a correção sugerida, verificando e mexendo com as permissões de "lrwxrwxrwx 1 raiz raiz 27 Set 20 08:59 / usr / lib / jvm / java-7-openjdk-amd64 / jre / lib / zi - > ../../../../../share/javazi "e executando o tzupdater. De alguma forma eu consertei, mas algumas atualizações posteriores quebraram novamente.

Eu decidi radicalizar então:

$> 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.

Ainda com erros: (

Agora estou sem ideias. O código que quebra isso é: TimeZone.getAvailableIDs (-3 * 60 * 60 * 1000); Ou seja, quero que o GMT-3 converta um conjunto de números (hous, minute, day ...) em uma Data:

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

Alguma dica sobre como consertar o Java TZ ou como contornar o problema no código java?

    
por gabriel_agm 17.10.2012 / 17:16

0 respostas