最近、プロジェクトを JDK 11 から JDK 17 にアップグレードしました。アップグレード後、powermock に問題が発生しているようです。AUT の実行中に、次のエラーが発生します。
java.lang.RuntimeException: PowerMock internal error: Should never throw exception at this level
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module @3fc34119
この問題の回避策をご存知ですか? もしご存知であれば、解決策を提供してください。
ベストアンサー1
暫定的な対策として (Powermock が更新されるまで)、次の引数を JVM に渡すことでテストを実行できるはずです。
--add-opens java.base/java.lang=ALL-UNNAMED
を使用してテストを実行している場合はMaven
、次のように設定できますsurefire-plugin
。
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${plugin.surefire.version}</version>
<configuration>
<argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
</configuration>
</plugin>