Me deparei com um problema muito sinistro quando debugavamos uma aplicação JSF aqui na empresa.
O problema foi identificado em um Menaged Bean (MB). Esse MB extende um ancestral MB que coordena o fluxo das execuções para metodos abstratos implementados na classe filha. O debug do NetBeans somente considerava os passos na classe ancestral, os breakpoins em métodos da classe filha nao eram acionados, apesar de o conteudo do método da classe filha ser executado.
O problema era grave, pois não era possível depurar nada pois toda a lógica do controlador é implementada em classes filhas deste Menaged Bean ancestral. Pior (ou melhor) de tudo era que todas as máquinas do desenvolvimento estavam com o mesmo problema.
Depois de muito analisar, testar, verificar configuração da ferramenta, pedir ajuda dos amigos, entre eles pessoas ligadas ao projeto NetBeans, chegamaos à suspeita de que o problema estava nos arquivos de configuração do projeto do NetBeans. O que pode ser comprovado depois que baixamos uma versão da aplicação que estava no CVS, anterior ao acontecimento do problema, conferimos os fontes e a excessão de algumas regras de negócio novas, o fonte estava em perfeita ordem.
Ao analisar os arquivos de propriedade do projeto NetBeans, mais especificamente o arquivo project.properties que fica na pasta nbproject, um colega notou que haviam marcações que o NetBeans usa para gerenciar os conflitos do CVS, de alguma forma isso ficou no arquivo e foi comitado no CVS.
Após a correção, pois estas marcações definitivamente não deveria estar lá, foi necessário a exclusao de todos os arquivos project.properties e project.xml que estavam na pasta nbproject deixando o NetBeans recriar estes arquivos.
Após este procedimento basta acessar as propriedades do projeto, por intermédio de um clique da direita em cima do projeto -> Properties e acessar o Item Build -> Compiling e marcar a opção Generate Debugging Info.
Pronto, é só pedir o Debug do projeto no servidor, tudo volta ao normal.
Nenhum comentário:
Postar um comentário