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

Unable to update the layout's modified date java.lang.NullPointerException error is produced in case of having an AssetPublisher with Staging+Page Versioning and email notifications enabled

    Details

      Description

      Unable to update the layout's modified date java.lang.NullPointerException error is produced in case of having an AssetPublisher with Staging+Page Versioning and email notifications enabled

      Steps to reproduce

      1. Create a site
      2. Create a widget page (the error is not reproduced using content pages )
      3. Add an Asset Publisher to the widget page, with email subscription enabled
      4. Enable Local Staging with page versioning
      5. Go to staging environment
      6. Create a webcontent in the staging environment
      7. Shutdown and restart Liferay tomcat to force the execution of AssetEntriesCheckerHelper job (you can also wait one hour until next job execution)
      8. Check startup log file:
        • Expected behavior: no error is thrown in log file
        • Wrong behavior: following error is thrown in log file
          2020-06-03 15:04:17.732 ERROR [liferay/scheduler_dispatch-4][PortletPreferencesModelListener:140] Unable to update the layout's modified date
          java.lang.NullPointerException
                  at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice.updateLayout(LayoutLocalServiceStagingAdvice.java:302)
                  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.service.impl.LayoutLocalServiceStagingAdvice$LayoutLocalServiceStagingInvocationHandler.invoke(LayoutLocalServiceStagingAdvice.java:784)
                  at com.sun.proxy.$Proxy156.updateLayout(Unknown Source)
                  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.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
                  at com.sun.proxy.$Proxy595.updateLayout(Unknown Source)
                  at com.liferay.portal.kernel.service.LayoutLocalServiceWrapper.updateLayout(LayoutLocalServiceWrapper.java:1913)
                  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.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
                  at com.sun.proxy.$Proxy596.updateLayout(Unknown Source)
                  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.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
                  at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)
                  at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
                  at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
                  at com.sun.proxy.$Proxy156.updateLayout(Unknown Source)
                  at com.liferay.portal.kernel.service.LayoutLocalServiceUtil.updateLayout(LayoutLocalServiceUtil.java:1850)
                  at com.liferay.portal.model.PortletPreferencesModelListener.updateLayout(PortletPreferencesModelListener.java:134)
                  at com.liferay.portal.model.PortletPreferencesModelListener.onAfterUpdate(PortletPreferencesModelListener.java:51)
                  at com.liferay.portal.model.PortletPreferencesModelListener.onAfterUpdate(PortletPreferencesModelListener.java:39)
                  at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.update(BasePersistenceImpl.java:674)
                  at com.liferay.portal.service.impl.PortletPreferencesLocalServiceImpl.updatePreferences(PortletPreferencesLocalServiceImpl.java:645)
                  at com.liferay.portal.service.impl.PortletPreferencesLocalServiceImpl.updatePreferences(PortletPreferencesLocalServiceImpl.java:610)
                  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.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
                  at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)
                  at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
                  at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
                  at com.sun.proxy.$Proxy75.updatePreferences(Unknown Source)
                  at com.liferay.portal.kernel.service.PortletPreferencesLocalServiceUtil.updatePreferences(PortletPreferencesLocalServiceUtil.java:525)
                  at com.liferay.portlet.PortletPreferencesImpl.store(PortletPreferencesImpl.java:176)
                  at com.liferay.asset.publisher.web.internal.messaging.AssetEntriesCheckerHelper._checkAssetEntries(AssetEntriesCheckerHelper.java:166)
                  at com.liferay.asset.publisher.web.internal.messaging.AssetEntriesCheckerHelper.lambda$checkAssetEntries$1(AssetEntriesCheckerHelper.java:97)
                  at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performAction(DefaultActionableDynamicQuery.java:394)
                  at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:306)
                  at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:268)
                  at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.doPerformActions(DefaultActionableDynamicQuery.java:326)
                  at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performActions(DefaultActionableDynamicQuery.java:86)
                  at com.liferay.asset.publisher.web.internal.messaging.AssetEntriesCheckerHelper.checkAssetEntries(AssetEntriesCheckerHelper.java:99)
                  at com.liferay.asset.publisher.web.internal.messaging.CheckAssetEntryMessageListener.doReceive(CheckAssetEntryMessageListener.java:80)
                  at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
                  at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper._processMessage(SchedulerEventMessageListenerWrapper.java:127)
                  at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper.receive(SchedulerEventMessageListenerWrapper.java:98)
                  at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
                  at com.liferay.portal.messaging.internal.ParallelDestination$1.run(ParallelDestination.java:56)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                  at java.lang.Thread.run(Thread.java:748)
          

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  12 weeks, 6 days ago

                  Packages

                  Version Package
                  7.1.10 DXP FP18
                  7.1.X
                  7.2.10 DXP FP6
                  7.2.X
                  7.3.3 CE GA4
                  7.3.4 CE GA5
                  Master