TomEE の「javaee-api-6.0-5.jar」で使用されている「javax.el.CompositeELResolver」に問題があります。
バージョン情報と svn-repository はこちら:
http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec/1.0.2
クラス CompositeELResolver のソース:
http://svn.apache.org /viewvc/geronimo/specs/tags/geronimo-el_2.2_spec-1.0.2/src/main/java/javax/el/CompositeELResolver.java?view=log
「invoke」メソッドでは、値が「null」のフィールドを持つリゾルバー配列全体を for ループが反復するため、null ポインター例外が発生します。必要に応じて配列サイズを 2 倍にするが値を初期化しない「add」メソッドのため、これは避けられないと思います。リゾルバーを使用する前に、「呼び出し」メソッドでリゾルバーが「null」であるかどうかを確認する必要はありませんか?
比較のために、別の javax.el 実装でアプリケーションを実行しましたが、正しく動作しています。
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>
私の推測は間違っていますか?
ここで同様の問題を見つけました: https://issues.apache.org/bugzilla/show_bug.cgi?id=50293
マルチスレッドが私の問題を引き起こしている可能性はありますか?