-
Type:
Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: 6.2.10 EE GA1, 6.2.X EE, 7.0.0 Alpha 1
-
Fix Version/s: 6.2.4 CE GA5, 6.2.X EE, 7.0.0 Alpha 1
-
Component/s: Dynamic Data Mapping, ~[Archived] WCM
-
Branch Version/s:6.2.x
-
Backported to Branch:Committed
-
Story Points:12
-
Fix Priority:3
-
Git Pull Request:
Default value entry at JournalArticle table is not deleted when deleting its DDMStructure.
Steps to Reproduce
- Create a DDMStructure
- Open "Edit default values" option and add some default values
- Check DDMStructure and JournalArticle tables, you will see a new record in each table
- Delete the DDMStructure
- Check DDMStructure and JournalArticle tables again:
- Wrong behavior: Only DDMStructure record is deleted
- Expected behavior: Both created records are deleted
- Wrong behavior: Only DDMStructure record is deleted
This causes some side effects at LAR exports, this functionality stops working if you have another DDMStructure
Additional Steps to Reproduce
- Execute previous steps
- Create other DDMStructure, in order to trigger default values export
- Execute a LAR export of all WCM objects.
- Wrong behavior: Following exception is thrown
12:06:31,252 ERROR [liferay/background_task-1][BackgroundTaskMessageListener:133] Unable to execute background task com.liferay.portal.kernel.exception.SystemException: com.liferay.portal.kernel.lar.PortletDataException: com.liferay.portlet.dynamicdatamapping.NoSuchStructureException: No DDMStructure exists with the key {groupId=10194, classNameId=10109, structureKey=191268} at com.liferay.portal.lar.backgroundtask.PortletStagingBackgroundTaskExecutor.execute(PortletStagingBackgroundTaskExecutor.java:68) at com.liferay.portal.kernel.backgroundtask.SerialBackgroundTaskExecutor.execute(SerialBackgroundTaskExecutor.java:56) at com.liferay.portal.backgroundtask.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:108) at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26) at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:72) at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:71) at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:682) at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:593) at java.lang.Thread.run(Thread.java:744) Caused by: com.liferay.portal.kernel.lar.PortletDataException: com.liferay.portlet.dynamicdatamapping.NoSuchStructureException: No DDMStructure exists with the key {groupId=10194, classNameId=10109, structureKey=191268} at com.liferay.portal.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:82) at com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil.exportStagedModel(StagedModelDataHandlerUtil.java:173) at com.liferay.portlet.journal.service.persistence.JournalArticleExportActionableDynamicQuery.performAction(JournalArticleExportActionableDynamicQuery.java:128) at com.liferay.portal.kernel.dao.orm.BaseActionableDynamicQuery.performActionsInSingleInterval(BaseActionableDynamicQuery.java:324) at com.liferay.portal.kernel.dao.orm.BaseActionableDynamicQuery.performActions(BaseActionableDynamicQuery.java:46) at com.liferay.portlet.journal.lar.JournalPortletDataHandler.doExportData(JournalPortletDataHandler.java:205) at com.liferay.portal.kernel.lar.BasePortletDataHandler.exportData(BasePortletDataHandler.java:108) at com.liferay.portal.lar.PortletExporter.exportPortletData(PortletExporter.java:227) at com.liferay.portal.lar.PortletExporter.exportPortlet(PortletExporter.java:1034) at com.liferay.portal.lar.PortletExporter.doExportPortletInfoAsFile(PortletExporter.java:446) at com.liferay.portal.lar.PortletExporter.exportPortletInfoAsFile(PortletExporter.java:297) at com.liferay.portal.service.impl.LayoutLocalServiceImpl.exportPortletInfoAsFile(LayoutLocalServiceImpl.java:998) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115) at com.liferay.portal.service.impl.LayoutLocalServiceVirtualLayoutsAdvice.invoke(LayoutLocalServiceVirtualLayoutsAdvice.java:183) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.invoke(LayoutLocalServiceStagingAdvice.java:141) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62) at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175) at com.sun.proxy.$Proxy34.exportPortletInfoAsFile(Unknown Source) at com.liferay.portal.service.LayoutLocalServiceUtil.exportPortletInfoAsFile(LayoutLocalServiceUtil.java:788) at com.liferay.portal.lar.backgroundtask.PortletStagingBackgroundTaskExecutor$PortletStagingCallable.call(PortletStagingBackgroundTaskExecutor.java:110) at com.liferay.portal.lar.backgroundtask.PortletStagingBackgroundTaskExecutor$PortletStagingCallable.call(PortletStagingBackgroundTaskExecutor.java:1) at com.liferay.portal.spring.transaction.TransactionalCallableUtil$CallableMethodInvocation.proceed(TransactionalCallableUtil.java:84) at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62) at com.liferay.portal.spring.transaction.TransactionalCallableUtil.call(TransactionalCallableUtil.java:36) at com.liferay.portal.lar.backgroundtask.PortletStagingBackgroundTaskExecutor.execute(PortletStagingBackgroundTaskExecutor.java:56) ... 8 more Caused by: com.liferay.portlet.dynamicdatamapping.NoSuchStructureException: No DDMStructure exists with the key {groupId=10194, classNameId=10109, structureKey=191268} at com.liferay.portlet.dynamicdatamapping.service.persistence.DDMStructurePersistenceImpl.findByG_C_S(DDMStructurePersistenceImpl.java:7245) at com.liferay.portlet.dynamicdatamapping.service.impl.DDMStructureLocalServiceImpl.getStructure(DDMStructureLocalServiceImpl.java:809) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115) at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62) at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175) at com.sun.proxy.$Proxy215.getStructure(Unknown Source) at com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalServiceUtil.getStructure(DDMStructureLocalServiceUtil.java:1001) at com.liferay.portlet.journal.lar.JournalArticleStagedModelDataHandler.doExportStagedModel(JournalArticleStagedModelDataHandler.java:281) at com.liferay.portlet.journal.lar.JournalArticleStagedModelDataHandler.doExportStagedModel(JournalArticleStagedModelDataHandler.java:1) at com.liferay.portal.kernel.lar.BaseStagedModelDataHandler.exportStagedModel(BaseStagedModelDataHandler.java:69) ... 40 more
- Expected behavior: No error is thrown and LAR export is executed sucessfully
- Wrong behavior: Following exception is thrown
- Discovered while testing
-
LPS-58744 Default values are not copied when you create a copy of a DDMStructure at Webcontent
- Closed
-
LPS-58745 Default values of DDMStructure are only exported / published to Live if you are also publising a DDMTemplate
- Closed
- relates
-
LPE-14323 Web Content LAR Export does not work after a DDMStructure is deleted
-
- Closed
-
- Testing discovered
-
LPS-58570 "Disable deletion of temporary LAR in case of staging errors" functionality (added at LPS-53879) is missing at PortletStagingBackgroundTaskExecutor and LayoutRemoteStagingBackgroundTaskExecutor
- Closed