Aplicação Swing em Linux travando aleatoriamente

7 respostas
mrbox

Olá pessoal,

Desenvolvi uma aplicação swing para uso exclusivo em Linux.
O propósito desta aplicação é ser um player de mp3 e Divx.
Devido há algumas restrições da JMF (Java Media Framework) quanto ao Linux (em especial, por não reproduzir MP3 no Linux), acabei usando uma API da IBM Alphaworks para reproduzir Mp3 e Divx.

A aplicação funciona perfeitamente, inclusive deixei rodando por três dias e noites sem parar.
O problema é o seguinte: Aleatoriamente ela está travando, ou seja, em determinadas horas do dia, reproduzindo musica ou simplesmente parada, ela congela e não fecha nem com ALT+F4. Fica simplesmente travada.
Achei que poderia ser alguma configuração de hardware ou talvez do próprio Linux, então instalei a aplicação em mais duas máquinas. Mesmo assim o problema persiste.
Interessante é que só trava a minha aplicação, quando ela esta travada eu consigo por exemplo acessar o menu iniciar do Linux e abrir outras aplicações sem problemas, mas a minha aplicação fica congelada.

Alguém já teve este tipo de problema?
Qual seria a melhor solução para tentar achar o bug?

Muito obrigado.

7 Respostas

hmichel

Isso pode ser varios problemas. Me parece algum tipo de deadlock ou coisa parecida. tente gerar um ThreadDump e ver o que está segurando a sua aplicação.
Instruções para geração de ThreadDump em http://wiki.netbeans.org/GenerateThreadDump.
É provavel que o Profiler do NetBeans ou o VisualVM possam ajudar tambem.

[]'s

mrbox

hmichel:
Isso pode ser varios problemas. Me parece algum tipo de deadlock ou coisa parecida. tente gerar um ThreadDump e ver o que está segurando a sua aplicação.
Instruções para geração de ThreadDump em http://wiki.netbeans.org/GenerateThreadDump.
É provavel que o Profiler do NetBeans ou o VisualVM possam ajudar tambem.
[]'s

Aqui eu to usando Eclipse!

Tem alguma dessas ferramentas para Eclipse?

netShot

Qual versão do Linux está rodando o seu aplicativo ?

mrbox

Distribuição Debian Etch 4.

Mas acredito não ter nada a ver com o Linux, pois o Linux não está travando. O que trava é apenas minha aplicação.

mrbox

Só pra futuras consultas, o VisualVm está me ajudando muito.

eduveks

coloca um try/catch no teu metodo main e guarda a exception num log.

isto pode ser memory heap…

tenta também um:

java -Xmx512m -jar App.jar

mrbox

Valeu pessoal, consegui resolver.

O problema era uma deadlock que consegui encontar rodando o VisualVM.

Muito obrigado mesmo.
Salvaram minha pele.

Criado 19 de maio de 2008
Ultima resposta 22 de mai. de 2008
Respostas 7
Participantes 4