Monitorar trechos que podem gerar deadlocks

Olá a todos,

Tenho alguns processos que são executados por várias threads, logo, tenho vários blocos sincronizados espalhados em objetos que precisam ser thread safe. Eu gostaria de montar um mecanismo para monitorar que obtém o lock para um determinado objeto, se possível quem ficou esperando o lock; quando o lock de um objeto é liberado afim de conseguir formas de indentificar os problemas caso ocorra algum deadlock. Pensei em fazer logs, mas gostaria de criar um mecanismo que pudesse fazer as chamadas sem que eu precisasse interferir nos blocos de código existentes para adicionar chamadas para fazer log.

Porém tenho alguns problemas. O maior deles… precisa ser feito em java 4.

Alguém tem alguma idéia do que posso fazer?

Grato pela atenção de todos,
Éberson

O Hudson não faz isso não?
http://www.google.com.br/#hl=pt-BR&q=HUDSON&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=fdcbef3513c7101

Nunca usei mais já vi pessoas monitorando partes de códigos que poderiam gerar futuros problemas.

Hum… não conheco o hudson…
vou dar uma pesquisada e ver se ele resolve o meu problema… valew pela dica GabrielCardelli.

Mais alguma idéia?

[]

editado:

Então, dei uma olhada, mas não vou poder usá-lo… eu queria algo que eu pudesse deixar no ambiente de produção e ativá-lo/desativá-lo quando fosse necessário, sem precisar interferir no cliente… eu pensei em algo que eu pudesse programar, pois poderia incluir na atualização e ativá-lo sem que o cliente precise fazer/disponibilizar nada…

Tinha pensando em criar uma thread que fizesse esse monitoramento e logasse essas informações independentemente do restante do sistema… imagino que assim eu não iria interferir no ambiente do cliente e poderia fazer um monitoramento digamos um mês inteiro e avaliar se a nossa arquitetura não falhou em algum ponto.

Não sei se consegui me expressar

Valew pela atenção…