1


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

マルチスレッドが私の問題を引き起こしている可能性はありますか?

4

2 に答える 2

1

解決しました。

TomEE はhttp://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_specのバージョン 1.0.2 を使用します

バグはバージョン 1.0.4 で修正されています

于 2013-06-13T06:51:55.797 に答える
0

修正された geronimo el 仕様 1.0.4 バージョンに基づいて、javaee-api-6.0-5.jar パッケージを簡単に修正できます。

ここから最新の jar ファイルをダウンロードするだけですhttp://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec/1.0.4

そして、javaee-api-6.0-5.jar の javax.el パッケージを、geronimo el 2.2 仕様 1.0.4 jar ファイルからのファイルで変更します。

Linuxでmcを使用してコンテンツを参照し、あるコンテンツから別のコンテンツにコピーしました。そして、私はテストして完璧に動作します。

もちろん、jar utils でも同様に実行できます :-)

この問題が 32 ビットの Windows 環境には存在せず、64 ビットの Linux 環境にのみ存在することは、私にとって奇妙でした。とにかく、修正は問題を解決します。

すぐに javaee-api-6.0-6.jar があることを願っています:-)

于 2014-01-29T07:34:17.050 に答える