この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

PMDでIncompatibleClassChangeError→checkstyle-8.2-all.jarが原因

今日、PMDを実行したらいきなりこんなエラーになって動かなくなりました。

java.lang.IncompatibleClassChangeError: Implementing class
    ...

は?何?と思って調査した所、checkstyle-8.2-all.jarをcheckstyle-8.1-all.jarに戻したら動くようになりました。

どうやらPMDが使用しているsaxonが、checkstyle-8.2-all.jarに新たに含まれるようになり、しかもクラスファイルが微妙に異なる模様です。

checkstyle-8.2のディストリビューションの中身を見てみると、Saxon-HE-9.8.0.4.jarというファイルが含まれており、 PMDのsaxon-9.8.0.4.jarと異なるようです。詳しくは見てませんが…