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

インスタンス設定の変更を保存できません

written-by

Sorin Pop

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

問題

  • インスタンス設定で構成を変更して [保存] をクリックすると、改ページ (メニューが表示されなくなります) 、変更が保存されません。
  • ログには、次のような部分でスタック トレースがスローされていることがわかります。
       ERROR [http-nio-8080-exec-4][PortletServlet:112] javax.portlet.PortletException: com.liferay.portal.kernel.exception.ModelListenerException: java.lang.NullPointerException
javax.portlet.PortletException: com.liferay.portal.kernel.exception.ModelListenerException: java.lang.NullPointerException
at com.liferay.portal.kernel.portlet.bridges.mvc.BaseMVCActionCommand.processAction(BaseMVCActionCommand.java:69)
Caused by: java.lang.NullPointerException
at com.liferay.portal.model.impl.UserImpl.getGroupId(UserImpl.java:512)
at com.liferay.calendar.internal.model.listener.UserModelListener.onAfterUpdate(UserModelListener.java:68)
... 231 more

Environment

  • DXP 7.1
  • DXP 7.2

解決策

  • これは、最初の起動時に liferay が作成する非表示のデフォルト ユーザーに関連する calendarresource テーブルの無効な行が原因です。 現在、この行がどのように挿入されたかはわかりません。 現在の知識によると、ポータルの通常の操作と機能によって、このような行が作成されることはありません。
  • 行は、次のような選択で見つけることができます。
SELECT * FROM CalendarResource
WHERE classNameId = (SELECT classNameId FROM ClassName_ WHERE value = 'com.liferay.portal.kernel.model.User')
AND classPK = (SELECT userId FROM User_ WHERE emailAddress = 'default@liferay.com');
  • 解決策は、次のような Groovy スクリプトを使用してその行を削除することです。
import com.liferay.calendar.service.CalendarResourceLocalServiceUtil;

CalendarResourceLocalServiceUtil.deleteCalendarResource(10101275);

10101275 は、上記の SELECT クエリによって返された calendarResourceId に置き換える必要があります。 安全を確保するために、最初に実稼働前の環境で試し、データベースのバックアップを事前に作成してください。 このソリューションを適用する理由がわからない、または問題が発生した場合は、サポートでチケットを開いて、この記事を参照してください。

did-this-article-resolve-your-issue

legacy-knowledge-base