問題
-
一部のフォーム フィールド ルールが空または正しくない場合に、ユーザーがフォームを保存しようとすると、例外がスローされます。
再現する手順:
- A、B、C の 3 つのテキスト フィールドを含む新しいフォームを追加します。
- フィールドを使用して、このフォームに新しいルールを追加します。 A が B と等しい場合、C を表示します。
- フォームを保存します。
- フォームを編集し、フィールド A を削除します。
- 最近作成されたルールは矛盾しています: A はもう存在しません。
- フォームを公開します。
観察された動作: 以下の例外がコンソールで観察されます。
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