Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-90557

Publishing deletion of shortcut target results in PortletDataException

    Details

      Description

      Steps to reproduce:

      1. Add a new site and enabled staging
      2. Add a basic document and a shortcut pointing to it
      3. Publish to live
      4. Delete basic document (shortcut target) in staging and assert the shortcut is also deleted
      5. Publish to live

      Expected result:
      Both deletions are published. Shortcut and target file are both gone.

      Actual result:
      Publish fails.

      Console errors appear:

      2019-02-14 06:44:27.211 ERROR [liferay/background_task-5][BackgroundTaskMessageListener:173] Unable to execute background task
      com.liferay.exportimport.kernel.lar.PortletDataException
              at com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.validateExport(FileEntryStagedModelDataHandler.java:911)
              at com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.validateExport(FileEntryStagedModelDataHandler.java:111)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:79)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportReferenceStagedModel(StagedModelDataHandlerUtil.java:159)
              at com.liferay.document.library.internal.exportimport.data.handler.FileShortcutStagedModelDataHandler.doExportStagedModel(FileShortcutStagedModelDataHandler.java:148)
              at com.liferay.document.library.internal.exportimport.data.handler.FileShortcutStagedModelDataHandler.doExportStagedModel(FileShortcutStagedModelDataHandler.java:54)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:102)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler._exportStagedModel(ChangesetPortletDataHandler.java:312)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.lambda$_exportChangesetCollection$2(ChangesetPortletDataHandler.java:257)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performAction(DefaultActionableDynamicQuery.java:404)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:316)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:278)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.doPerformActions(DefaultActionableDynamicQuery.java:336)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performActions(DefaultActionableDynamicQuery.java:86)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler._exportChangesetCollection(ChangesetPortletDataHandler.java:260)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.doExportData(ChangesetPortletDataHandler.java:166)
              at com.liferay.exportimport.kernel.lar.BasePortletDataHandler.exportData(BasePortletDataHandler.java:141)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.exportData(ChangesetPortletDataHandler.java:105)
              at com.liferay.exportimport.internal.controller.PortletExportControllerImpl.exportPortletData(PortletExportControllerImpl.java:719)
              at com.liferay.exportimport.internal.controller.PortletExportControllerImpl.exportPortlet(PortletExportControllerImpl.java:474)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.exportPortlet(StagedGroupStagedModelDataHandler.java:371)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.exportSitePortlets(StagedGroupStagedModelDataHandler.java:433)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.doExportStagedModel(StagedGroupStagedModelDataHandler.java:227)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.doExportStagedModel(StagedGroupStagedModelDataHandler.java:78)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:102)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.internal.controller.LayoutExportController.doExport(LayoutExportController.java:334)
              at com.liferay.exportimport.internal.controller.LayoutExportController.export(LayoutExportController.java:126)
              at com.liferay.portlet.exportimport.service.impl.ExportImportLocalServiceImpl.exportLayoutsAsFile(ExportImportLocalServiceImpl.java:66)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.liferay.portal.spring.aop.AopMethodInvocation.proceed(AopMethodInvocation.java:44)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.lambda$invoke$0(TransactionInterceptor.java:61)
              at com.liferay.portal.spring.transaction.DefaultTransactionExecutor._execute(DefaultTransactionExecutor.java:128)
              at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:51)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:59)
              at com.liferay.portal.spring.aop.AopMethodInvocation.proceed(AopMethodInvocation.java:51)
              at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:44)
              at com.sun.proxy.$Proxy95.exportLayoutsAsFile(Unknown Source)
              at com.liferay.exportimport.kernel.service.ExportImportLocalServiceUtil.exportLayoutsAsFile(ExportImportLocalServiceUtil.java:46)
              at com.liferay.exportimport.internal.background.task.LayoutStagingBackgroundTaskExecutor.execute(LayoutStagingBackgroundTaskExecutor.java:139)
              at com.liferay.portal.background.task.internal.SerialBackgroundTaskExecutor.execute(SerialBackgroundTaskExecutor.java:62)
              at com.liferay.portal.kernel.backgroundtask.DelegatingBackgroundTaskExecutor.execute(DelegatingBackgroundTaskExecutor.java:43)
              at com.liferay.portal.background.task.internal.ThreadLocalAwareBackgroundTaskExecutor.execute(ThreadLocalAwareBackgroundTaskExecutor.java:75)
              at com.liferay.portal.background.task.internal.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:132)
              at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
              at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
              at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:52)
              at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:752)
              at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:664)
              at java.lang.Thread.run(Thread.java:748)
      2019-02-14 06:49:20.347 ERROR [liferay/background_task-2][BackgroundTaskMessageListener:173] Unable to execute background task
      com.liferay.exportimport.kernel.lar.PortletDataException
              at com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.validateExport(FileEntryStagedModelDataHandler.java:911)
              at com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.validateExport(FileEntryStagedModelDataHandler.java:111)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:79)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportReferenceStagedModel(StagedModelDataHandlerUtil.java:159)
              at com.liferay.document.library.internal.exportimport.data.handler.FileShortcutStagedModelDataHandler.doExportStagedModel(FileShortcutStagedModelDataHandler.java:148)
              at com.liferay.document.library.internal.exportimport.data.handler.FileShortcutStagedModelDataHandler.doExportStagedModel(FileShortcutStagedModelDataHandler.java:54)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:102)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler._exportStagedModel(ChangesetPortletDataHandler.java:312)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.lambda$_exportChangesetCollection$2(ChangesetPortletDataHandler.java:257)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performAction(DefaultActionableDynamicQuery.java:404)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:316)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:278)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.doPerformActions(DefaultActionableDynamicQuery.java:336)
              at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performActions(DefaultActionableDynamicQuery.java:86)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler._exportChangesetCollection(ChangesetPortletDataHandler.java:260)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.doExportData(ChangesetPortletDataHandler.java:166)
              at com.liferay.exportimport.kernel.lar.BasePortletDataHandler.exportData(BasePortletDataHandler.java:141)
              at com.liferay.exportimport.changeset.web.internal.portlet.data.handler.ChangesetPortletDataHandler.exportData(ChangesetPortletDataHandler.java:105)
              at com.liferay.exportimport.internal.controller.PortletExportControllerImpl.exportPortletData(PortletExportControllerImpl.java:719)
              at com.liferay.exportimport.internal.controller.PortletExportControllerImpl.exportPortlet(PortletExportControllerImpl.java:474)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.exportPortlet(StagedGroupStagedModelDataHandler.java:371)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.exportSitePortlets(StagedGroupStagedModelDataHandler.java:433)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.doExportStagedModel(StagedGroupStagedModelDataHandler.java:227)
              at com.liferay.site.internal.exportimport.data.handler.StagedGroupStagedModelDataHandler.doExportStagedModel(StagedGroupStagedModelDataHandler.java:78)
              at com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:102)
              at com.liferay.exportimport.data.handler.base.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:80)
              at com.liferay.exportimport.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:183)
              at com.liferay.exportimport.internal.controller.LayoutExportController.doExport(LayoutExportController.java:334)
              at com.liferay.exportimport.internal.controller.LayoutExportController.export(LayoutExportController.java:126)
              at com.liferay.portlet.exportimport.service.impl.ExportImportLocalServiceImpl.exportLayoutsAsFile(ExportImportLocalServiceImpl.java:66)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.liferay.portal.spring.aop.AopMethodInvocation.proceed(AopMethodInvocation.java:44)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.lambda$invoke$0(TransactionInterceptor.java:61)
              at com.liferay.portal.spring.transaction.DefaultTransactionExecutor._execute(DefaultTransactionExecutor.java:128)
              at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:51)
              at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:59)
              at com.liferay.portal.spring.aop.AopMethodInvocation.proceed(AopMethodInvocation.java:51)
              at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:44)
              at com.sun.proxy.$Proxy95.exportLayoutsAsFile(Unknown Source)
              at com.liferay.exportimport.kernel.service.ExportImportLocalServiceUtil.exportLayoutsAsFile(ExportImportLocalServiceUtil.java:46)
              at com.liferay.exportimport.internal.background.task.LayoutStagingBackgroundTaskExecutor.execute(LayoutStagingBackgroundTaskExecutor.java:139)
              at com.liferay.portal.background.task.internal.SerialBackgroundTaskExecutor.execute(SerialBackgroundTaskExecutor.java:62)
              at com.liferay.portal.kernel.backgroundtask.DelegatingBackgroundTaskExecutor.execute(DelegatingBackgroundTaskExecutor.java:43)
              at com.liferay.portal.background.task.internal.ThreadLocalAwareBackgroundTaskExecutor.execute(ThreadLocalAwareBackgroundTaskExecutor.java:75)
              at com.liferay.portal.background.task.internal.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:132)
              at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
              at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
              at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:52)
              at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:752)
              at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:664)
              at java.lang.Thread.run(Thread.java:748)
      

      Reproduced on:
      Tomcat 9.0.10 + MySQL 5.7.
      Portal master 0ec72222807cda84f2afa0094629ef9395db2387
      Portal 7.1 GA1

        Attachments

          Activity

            People

            • Assignee:
              austin.chiang Austin Chiang
              Reporter:
              austin.chiang Austin Chiang
              Participants of an Issue:
              Recent user:
              Brian Wulbern
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                1 year, 22 weeks, 2 days ago

                Packages

                Version Package
                Master