Problemas usando BCEL + ClassFileTransformer para classes somente com métodos estáticos

Olá Pessoal!

Estou modificando o bytecode de uma classe no momento em que é carregada utilizando uma classe que implementa ClassFileTransformer e utilizando BCEL para manipular a classe.

Funciona direitinho, porém somente quando a classe possui pelo menos um método não estático. Estava estranhando que o método main() não estava sendo instrumentado e quando adicionei um novo método não-estático, aquela classe passou a ser modificada, inclusive o método main(). Alguém saberia o motivo disso? Por acaso quando uma classe não possui métodos de instância não passa pelos ClassFileTransformers configurados no método premain()?

Agradeço qualquer ajuda!!!

Olá Pessoal!

Fiz mais uns testes e constatei mais o seguinte:

  • Classe só com método main -> não modifica
  • Classe com método main e outro método estático -> modifica
  • Classe com método main e método estático sem nenhum código -> não modifica
  • Classe somente com um método estático -> modifica

Lembrando que quando a classe com o método main() é modificada, o método main() também é!