-
Type:
Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: 7.1.X, 7.2.X, Master
-
Fix Version/s: 7.1.10 DXP FP18, 7.1.10.5 SP5, 7.1.X, 7.2.10 DXP FP6, 7.2.X, 7.3.3 CE GA4, 7.3.4 CE GA5, 7.3.10 DXP GA1, Master
-
Branch Version/s:7.2.x, 7.1.x
-
Backported to Branch:Committed
-
Fix Priority:3
-
Git Pull Request:
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
- Create a site
- Create a widget page (the error is not reproduced using content pages
)
- Add an Asset Publisher to the widget page, with email subscription enabled
- Enable Local Staging with page versioning
- Go to staging environment
- Create a webcontent in the staging environment
- Shutdown and restart Liferay tomcat to force the execution of AssetEntriesCheckerHelper job (you can also wait one hour until next job execution)
- 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)
- Expected behavior: no error is thrown in log file
- causes
-
LPS-119187 New Draft version after task CheckAssetEntryMessageListener staging and page versioning and email notifications enabled
- Closed