legacy-knowledge-base
公開されました Sep. 10, 2025

アップグレード後のJava EL式のパフォーマンスの問題

written-by

Madeleine Clay

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 最近Liferay 7.4にアップデートしたのですが、パフォーマンスに問題があります。
  • カスタムJSPファイルにELエクスプレッション( ${expressionName})が配置されています。
  • パフォーマンス問題の最中に採取されたスレッドダンプを見ると、BLOCKED状態のスレッドが大量にあり、スタックトレースには次のような記述がある:
    • カスタムJSPファイルについて
    • 以下のコールを含む:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java)
    • というようなEL決議に関連すると思われるセリフとともに:
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java)

環境

  • DXP 7.4
  • 四半期ごとのリリース

解像度

  • 以下を含むHotfixをリクエストしてください。 LPD-21945

追加情報

  • このパフォーマンスの問題は、サードパーティの式パーサーのコードで行われたロジックの変更に起因する
    • この変更により、EL式がNULLと評価された場合、式パーサーはそれをJavaクラス名として解釈します。
    • そしてパーサーは、アクセスできるすべての.jarファイルの中から、その名前を持つクラスを探し始めるが、その名前は存在しない。
    • これは同期処理であるため、一度に実行できるのは1つのスレッドだけである。そのため、この.jspファイルをレンダリングする必要があるページに多数のユーザーがアクセスすると、スレッドがすべて互いにブロックし合い、非常に遅くなる。
  • 参照 このサードパーティJSPチュートリアル・ページを参照してください。
did-this-article-resolve-your-issue

legacy-knowledge-base