Erro esporádico ao tentar acessar class

5 respostas
J

Estou com o seguinte erro abaixo, já andei dando uma pesquisada na WEB este erro não ocorre com frequência mas as vezes ocorre umas 4 a 5 vezes no dia. Este erro só é apresentado no console, as classes do meu projeto por onde passa a pilha do erro (Linhas 14 e 15) mudam ou seja não é sempre no mesmo ponto especifico as vezes nem mesmo a classe, o complicado que estou achando é que a exceção que ocorre não fala qual a classe que estava tentando fazer o carregamento. E sempre que ocorre esse erro a parte gráfica continua funcionando mais alguns componentes ficam bem lentos ou não são mais carregados e é necessário matar a aplicação para conseguir utilizar novamente.
Obs.: O erro não ocorre ao abrir a aplicação pois já ocorreu de acontecer o erro depois de horas com o sistema aberto.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.sun.deploy.security.CPCallbackHandler.isAuthenticated(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler.access$1300(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos.validaBotoes(AbaDefaultProntos.java:555)
at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos$8.valueChanged(AbaDefaultProntos.java:273)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.setValueIsAdjusting(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

5 Respostas

sowyer

Cara… no teu código, o problema começa aqui:

at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos.validaBotoes(AbaDefaultProntos.java:555)  
at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos$8.valueChanged(AbaDefaultProntos.java:273)

Posta ai essa classe pra analisarmos.

J

sowyer:
Cara… no teu código, o problema começa aqui:

at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos.validaBotoes(AbaDefaultProntos.java:555)  
at jalis.laboratorio.interfaceamento.abas.AbaDefaultProntos$8.valueChanged(AbaDefaultProntos.java:273)

Posta ai essa classe pra analisarmos.


Ai é que é o problema não é sempre nessa classe as vezes é nessa ou em outras nessa em especifico é um botão que foi instanciado normalmente na construção se fosse sempre no mesmo código eu conseguiria tentar fazer um tratamento mais o problema ocorre sempre na mesma classe, estou começando a ficar desconfiado que possa ser alguma configuração no Java pois minha aplicação carrega com o Java Web Start e por só tive 1 cliente reclamando desse problema.

igor_ks

Sinceramente acho dificil que um NullPOinterException seja causado por algum bug do Java, ou da API Swing…

Veja nos logs as classes e os trechos de codigos que estão dando o erro, e veja se há alguma semelhanca entre elas. O log aponta a linha certinho, é fácil identificar qual objeto pode estar vindo nulo… tente identificar do motivo desse objeto poder estar vindo null

J
igor_ks:
Sinceramente acho dificil que um NullPOinterException seja causado por algum bug do Java, ou da API Swing..

Veja nos logs as classes e os trechos de codigos que estão dando o erro, e veja se há alguma semelhanca entre elas. O log aponta a linha certinho, é fácil identificar qual objeto pode estar vindo nulo.. tente identificar do motivo desse objeto poder estar vindo null

Eu também achava que não pudesse ser mais como pode ver no código abaixo eu coloquei uma parte resumida do meu código pois a classe é bem complexa e grande e no caso o erro de null pointer ocorre em 1 dos botões só que não existe nenhum lugar que faça eles perderem a referência setando null para o objeto.
public class AbaDefaultProntos extends PanelAbaAbstrata {

  private JButton jButtonExcluir   = new BotaoNavegavel("Excluir");
  private JButton jButtonExportar  = new BotaoNavegavel("Exportar");
  private JButton jButtonLiberarUm = new BotaoNavegavel("Exportar um");
  private JButton jButtonRepetir   = new BotaoNavegavel("Repetir");
  private JButton jButtonEstornar  = new BotaoNavegavel("Estornar");
  private JButton jButtonResultado = new BotaoNavegavel("Resultado", 't');
  
  public void validaBotoes(final int sit){
	  SwingUtilities.invokeLater(new Runnable(){
			public void run() {
				jButtonLiberarUm.setEnabled(sit == AbstractInterfaceamento.SIT_PRONTO_VALIDADO);
				jButtonRepetir.setEnabled(sit == AbstractInterfaceamento.SIT_PRONTO);
				jButtonEstornar.setEnabled(sit == AbstractInterfaceamento.SIT_REPETINDO);
				jButtonResultado.setEnabled(sit < AbstractInterfaceamento.SIT_COM_REPETICAO);
			}
	  });
  }
}
J

Bom como não tive nenhuma resposta sobre o erro que realmente resolvesse o meu problema e após investigar bem e muita gente falar em outros foruns sobre o cache tentei mudar o carregamento da aplicação de forma diferente e isso resolveu o meu problema pois não havia lógica eu ficar tratando um objeto que já foi instanciado para saber se ele está null até porque eu iria ficar tratando isso eternamente pois o erro não nunca ocorria na mesma Classe e nem no mesmo Objeto.

Criado 18 de março de 2014
Ultima resposta 24 de mar. de 2014
Respostas 5
Participantes 3