問題
ERROR [liferay/scheduler_dispatch-3][TrashEntryLocalServiceImpl:190] com.liferay.document.library.kernel.exception.NoSuchFileEntryException: No FileEntry exists with the key {fileEntryId=XXXX}
環境
解決
-
TrashEntryテーブルに、元のテーブルから削除された要素への参照が存在するようです。
fileEntryId のIDを持つ FileEntry が影響しています。
-
以下のクエリを実行し、ドキュメントライブラリのエントリを確認します。
select * from DLFileEntry where fileEntryId = 67110;
以下のクエリを実行し、ゴミ箱のエントリを確認します。
select * from TrashEntry where classPK = 67110;
ゴミ箱のコンテンツを削除する場合、元の要素も同時に削除されます。
元のレコードが存在しないため、NoSuchFileEntryException がスローされます。
以下のスクリプトを実行することで、TrashEntryテーブルから不要なテーブルを削除します。
テーブルが削除されることで、エラーが発生しなくなる認識です。
import com.liferay.trash.service.TrashEntryLocalServiceUtil
def entry = TrashEntryLocalServiceUtil.getTrashEntry(XXXX);
TrashEntryLocalServiceUtil.deleteEntry(entry);