Virus que ferra o JFileChooser

meio off topic…não axei nenhum pgrupo sobre virus…

caso seja util pra alguem, hoje me aconteceu o seguinte:

eu la numa boa testando o codigo que tinha feito… abri minha classe do ambiente grafico, e cliquei em um botão que abriria um JFileChooser, para poder ir comfigurando o software…até ai normal, se não fosse pela minha aplicação pega 99% da CPU… no ctrl alt e del (windows xp) tava la a aplicação rodando com a memoria que costuma ocupar, mais sempre que eu chamava o JFileChooser, o uso de cpu ia pra 99%…

eu, não sabendo oque fazer, ja que a aplicação não estava assim ontem pensei, fu***.

restaurei o sistema, abri minha classe la e ela continuava a mesma coisa…

atualizei o banco de dados do avast e mandei ele passa o scan nos 2 hd…e ele acuso um virus chamado “Win32:Trojan-gen {VC}”… eu pensei "kralho !!! um virus q ocupa a cpu quando abre um JFileChooser…que restrito…rsrs(antes que falem qualquer coisa, na brincadera, claro)…

dando uma pesquisada li que que é um trojan generico para Win32 (como se for parar pra pensar o proprio nome diz), ou seja, entrando como generico pode ser um monte de coisa… mandei o avast excluir o virus.

o JFilechooser ainda tava gordão… e aliais assim como antes, a janela dele nem sequer abria…

mandei o avast dar um scan completo nos hds no proximo boot e reiniciei…resolveu…

alguem ja teve alguma experiencia zuada assim?

Sim, com o Netbeans 6. Depois, percebi também que havia ocorrido com o instalador do Weblogic. Na verdade, com qualquer filechooser Java.
Sabe o que era? Havia um atalho no desktop do Windows para o próprio desktop. Não sei como isso pode influenciar, mas excluí e o problema parou.

Bug do Windows ou JDK?

Sim, com o Netbeans 6. Depois, percebi também que havia ocorrido com o instalador do Weblogic. Na verdade, com qualquer filechooser Java.
Sabe o que era? Havia um atalho no desktop do Windows para o próprio desktop. Não sei como isso pode influenciar, mas excluí e o problema parou.

Bug do Windows ou JDK?[/quote]

Infinitas chamadas recursivas?
Normalmente para se listar os conteúdos de uma árvore de diretórios, um método bastante comum é utilizar recursividade. Se houver uma referência circular (como no caso desse atalho para o desktop no próprio desktop) isso pode gerar chamadas recursivas infinitas, o que explicaria o processadorv ficar em 99%.

Um atalho não é um arquivo como outro qualquer? Pra que ele abre o arquivo, lê o conteúdo e navega até o que ele aponta?

Até onde eu sei todo diretório é um arquivo. Mas no caso de um diretório o que vc tem é um arquivo com uma referência (ou uma coleção de referências) para posições no disco.
No caso de um atalho que aponta para um diretório X, dentro de X, você tem uma referência que acaba apontando para si mesma.

Mas, por que só acontece com o Java? Filechoosers do Windows não travam.

Ai já é detalhe de implementação mesmo, no caso um bug mesmo pelo jeito, porque o componente deveria ter algum tipo de proteção contra isso… Uma pergunta: Isso ocorre somente se você abrir o programa de dentro do netbeans ou executando a aplicação de modo independente também acontece?

Aparentemente, qualquer programa feito em Java que abra um JFileChooser, como no “Open File” do Netbeans ou o “Browse…” do instalador do Weblogic.

Eu tive problemas sérios com isso tb, e percebi que quando tinha muitos arquivos .zip no desktop ele demora demais para abrir, acabei encontrando algumas pessoas em outros foruns com mesma conclusão…