legacy-knowledge-base
公開されました Jul. 2, 2025

フォーム フィールド ルールが矛盾している場合に PortletException がスローされる

written-by

Kanchan Bisht

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

問題

  • 一部のフォーム フィールド ルールが空または正しくない場合に、ユーザーがフォームを保存しようとすると、例外がスローされます。

    再現する手順:

    1. A、B、C の 3 つのテキスト フィールドを含む新しいフォームを追加します。
    2. フィールドを使用して、このフォームに新しいルールを追加します。 A が B と等しい場合、C を表示します。
    3. フォームを保存します。
    4. フォームを編集し、フィールド A を削除します。
    5. 最近作成されたルールは矛盾しています: A はもう存在しません。
    6. フォームを公開します。

    観察された動作: 以下の例外がコンソールで観察されます。

    03-Jun-2021 06:58:51.558 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [621,752] milliseconds
    2021-06-03 07:11:46.466 ERROR [http-nio-8080-exec-10][PortletServlet:119] javax.portlet.PortletException: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Lcom.liferay.dynamic.data.mapping.form.builder.internal.converter.model.DDMFormRuleCondition;
    javax.portlet.PortletException: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Lcom.liferay.dynamic.data.mapping.form.builder.internal.converter.model.DDMFormRuleCondition;
    at com.liferay.portal.kernel.portlet.bridges.mvc.BaseTransactionalMVCActionCommand.processAction(BaseTransactionalMVCActionCommand.java:59)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:378)
    at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:88)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:260)
    at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:77)

    予想される動作: より具体的なエラー メッセージが UI に表示されます: 「エラー: 無効なルール式があります。」

Environment

  • Liferay DXP 7.2

解決策

  • これは既知の問題であり、 LPS-118102で修正されています。
  • コードが大幅に変更されているため、この 今後のフィックスパックで修正される可能性があります。 ただし、この問題に修正プログラムが必要な場合は、修正プログラムの詳細を添付して、修正プログラムを要求するサポート チケットを作成してください。
  • Liferay DXP にフィックスパックとホットフィックスをインストールすると、それぞれの環境にこのホットフィックスをインストールするためのガイドが表示されます。

追加情報

  • 7.2 の場合、ここで修正を追跡できます LPS-127795
did-this-article-resolve-your-issue

legacy-knowledge-base