Ontem, no trabalho, encontramos um bug na GregorianCalendar do java 5 que causou um certo descontentamento.
Um certo método no ejb (Session) estava lançando uma NullPointerException, foi verificado que o erro ocorria na execução do método add de um objeto GregorianCalendar. Este objeto era enviado de uma outra camada. A única mudanaça foi a atualização para java 5 na máquina.
Voltamos a máquina de ejb para java 1.4, e tudo voltou a funcionar... Resolvemos dar uma olhada nos fontes da versão 1.4 e 5 !
Triste mas na versão 5 existe um atributo 'calsys' que é transient (hummm). Este atributo é utilizado por um método interno que é acionado dentro de add, que em determinado momento válida se é null, mas em outro não !
Bom, infelizmente um sistema é um pouco grande, e neste momento não é interessante modificar as referencias de GregorianCalendar para Date por exemplo, mas o ideal para representar data é o utilizar o simples e prático Date, deixe o GregorianCalendar para situações mais específicas a instantes.
Já existe um relatório indicando o bug, é só esperar pelo Mustang.
No comments:
Post a Comment