quarta-feira, 20 de agosto de 2008

Problema na implementação da TableModel em JVMs distintas

Estava trabalhando com uma TableModel em minha máquina, com a JVM do Java 1.4.2 da IBM, e tudo estava funcionando perfeitamente. Quando fiz o deploy a aplicação, a mesma começou a bagunçar informações ou mesmo "quebrou".

Adicionando alguns "System.err.println" a aplicação, percebi que no servidor, as colunas estavam em ordem diferente da  aplicação em minha máquina. Perdi um grande tempo para descobrir o que estava ocorrendo, e nada... Resolvi checar a versão da JVM no servidor e vi que era uma JVM da Sun, e não da IBM. Então resolvi fazer uma alteração no meu código, que era assim:

if ("rule".equalsIgnoreCase(MinhaTableModel.getString(j,0)))
{ ....


Neste momento, estava pegando o valor na coluna 0 e linha j. Porém na JVM da Sun não estava rolando. Fiz o seguinte:


TableModelHelper helper = new TableModelHelper(context, t); // Utilizei um TableModelHelper
String rowType = helper.getString(i,"type"); // jogo os valores em variáveis, utilizando o NOME da coluna, e não o indice
String ruleName = helper.getString(i,"rule");
if ("rule".equalsIgnoreCase(rowType) )  // Ai sim comparo
{ ...


Feito isso o código funcionou perfeitamente em ambas JVMs.

Percebe-ce um erro de implementação, possivelmente na JVM da IBM. Testei o código não corrigido, na versão 5, e nela, está tudo funcionando, então percebe-se o erro na versão 1.4.

Enjoy!

Nenhum comentário:

Postar um comentário