Message Boards

Unable to interpret notification in Liferay 7.2.1 CE GA2

thumbnail
ali yeganeh, modified 4 Years ago.

Unable to interpret notification in Liferay 7.2.1 CE GA2

Regular Member Posts: 148 Join Date: 5/1/19 Recent Posts
Hi
I override getURLEditWorkflowTask() method of BaseWorkflowHandler class for redirect notification URL that generated by workflow and worked correctly in liferay 7.1
But i migrate from liferay 7.1 to Liferay 7.2.1 CE GA2 and I encountered the following exception
why?


2019-11-24 14:01:53.349 ERROR [http-nio-8080-exec-3][BaseUserNotificationHandler:88] Unable to interpret notification
java.lang.NullPointerException
    at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasAssetViewPermission(WorkflowTaskPermissionChecker.java:169)
    at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasPermission(WorkflowTaskPermissionChecker.java:54)
    at com.liferay.portal.workflow.task.web.internal.notifications.WorkflowTaskUserNotificationHandler._hasPermission(WorkflowTaskUserNotificationHandler.java:143)
    at com.liferay.portal.workflow.task.web.internal.notifications.WorkflowTaskUserNotificationHandler.getLink(WorkflowTaskUserNotificationHandler.java:98)
    at com.liferay.portal.kernel.notifications.BaseUserNotificationHandler.doInterpret(BaseUserNotificationHandler.java:149)
    at com.liferay.portal.kernel.notifications.BaseUserNotificationHandler.interpret(BaseUserNotificationHandler.java:57)
    at com.liferay.portal.kernel.notifications.UserNotificationManagerUtil._interpret(UserNotificationManagerUtil.java:294)
    at com.liferay.portal.kernel.notifications.UserNotificationManagerUtil.interpret(UserNotificationManagerUtil.java:110)
    at org.apache.jsp.notifications.view_jsp._jspService(view_jsp:387)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.osgi.web.servlet.jsp.compiler.internal.JspServlet.service(JspServlet.java:369)
    at com.liferay.portal.osgi.web.servlet.jsp.compiler.internal.JspServlet.service(JspServlet.java:381)
    at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
    at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
    at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:120)
    at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
    at com.liferay.portlet.internal.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:291)
    at com.liferay.portlet.internal.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:123)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.include(MVCPortlet.java:592)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.include(MVCPortlet.java:608)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.doView(MVCPortlet.java:176)
    at com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:286)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:485)
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:291)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.render(MVCPortlet.java:316)
    at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:127)
    at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:58)
    at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:124)
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71)
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
    at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
    at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:120)
    at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
    at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:589)
    at com.liferay.portlet.internal.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:682)
    at com.liferay.portlet.internal.InvokerPortletImpl.render(InvokerPortletImpl.java:362)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.lambda$render$0(MonitoringInvokerPortlet.java:277)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet._render(MonitoringInvokerPortlet.java:380)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.render(MonitoringInvokerPortlet.java:275)
    at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(Unknown Source)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64)
    at com.liferay.portal.servlet.DirectRequestDispatcherFactoryImpl$IndirectRequestDispatcher.include(DirectRequestDispatcherFactoryImpl.java:201)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:79)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
    at com.liferay.portal.servlet.TransferHeadersHelperImpl$TransferHeadersRequestDispatcher.include(TransferHeadersHelperImpl.java:162)
    at com.liferay.portlet.internal.PortletContainerImpl._render(PortletContainerImpl.java:908)
    at com.liferay.portlet.internal.PortletContainerImpl.lambda$render$2(PortletContainerImpl.java:225)
    at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:425)
    at com.liferay.portlet.internal.PortletContainerImpl.render(PortletContainerImpl.java:213)
    at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:144)
    at com.liferay.portlet.RestrictPortletContainerWrapper.lambda$render$0(RestrictPortletContainerWrapper.java:128)
    at com.liferay.portlet.RestrictPortletContainerWrapper._render(RestrictPortletContainerWrapper.java:189)
    at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
    at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:215)
    at com.liferay.portal.layoutconfiguration.util.PortletRenderer._render(PortletRenderer.java:209)
    at com.liferay.portal.layoutconfiguration.util.PortletRenderer.render(PortletRenderer.java:87)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doProcessTemplate(RuntimePageImpl.java:593)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doDispatch(RuntimePageImpl.java:359)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:160)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:185)
    at com.liferay.portal.kernel.layoutconfiguration.util.RuntimePageUtil.processTemplate(RuntimePageUtil.java:105)
    at org.apache.jsp.html.portal.layout.view.portlet_jsp._jspService(Unknown Source)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64)
    at com.liferay.portal.servlet.DirectRequestDispatcherFactoryImpl$IndirectRequestDispatcher.include(DirectRequestDispatcherFactoryImpl.java:201)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:79)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
    at com.liferay.portal.servlet.TransferHeadersHelperImpl$TransferHeadersRequestDispatcher.include(TransferHeadersHelperImpl.java:162)
    at com.liferay.portal.model.impl.LayoutTypeControllerImpl.includeLayoutContent(LayoutTypeControllerImpl.java:171)
    at com.liferay.portal.model.impl.LayoutImpl.includeLayoutContent(LayoutImpl.java:883)
    at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:412)
    at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:170)
    at com.liferay.portal.struts.PortalRequestProcessor._process(PortalRequestProcessor.java:415)
    at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:155)
    at com.liferay.portal.internal.servlet.MainServlet.doGet(MainServlet.java:205)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at com.liferay.portal.internal.servlet.MainServlet.service(MainServlet.java:622)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
    at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:357)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:182)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.liferay.friendly.url.internal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:409)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.ServletAdapter.service(ServletAdapter.java:99)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:368)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:357)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:264)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:268)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:182)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
    at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
thumbnail
Olaf Kock, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Liferay Legend Posts: 6403 Join Date: 9/23/08 Recent Posts
ali yeganeh:

Hi
I override getURLEditWorkflowTask() method of BaseWorkflowHandler class for redirect notification URL that generated by workflow and worked correctly in liferay 7.1
But i migrate from liferay 7.1 to Liferay 7.2.1 CE GA2 and I encountered the following exception
why?


2019-11-24 14:01:53.349 ERROR [http-nio-8080-exec-3][BaseUserNotificationHandler:88] Unable to interpret notification
java.lang.NullPointerException
    at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasAssetViewPermission(WorkflowTaskPermissionChecker.java:169)
    at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasPermission(WorkflowTaskPermissionChecker.java:54)
...
Pardon the pun:
So you changed something (which is not part of this stacktrace) in a nondisclosed way, and upon nondisclosed action, you see the pasted effect (e.g. stacktrace).

Even without following those "steps to reproduce" (which I paraphrased in italics), I'm assuming that I won't be able to reproduce the same effect. Or, in other words: Until further demonstration I'd say that most likely "something" is wrong...
thumbnail
ali yeganeh, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Regular Member Posts: 148 Join Date: 5/1/19 Recent Posts
Hi dear Olaf
I attached my WorkflowHandler class
When I comment the whole my WorkflowHandler  class  and then refresh the notification screen, I don't get any exception and can see my notification!!! ( I attached the before and after photo  )
but i need this class for update Status and get URL Edit Workflow Task
When i migrate from liferay 7.1 to Liferay 7.2.1 CE GA2 i encountered the following exception
thumbnail
Olaf Kock, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Liferay Legend Posts: 6403 Join Date: 9/23/08 Recent Posts
ali yeganeh:

I attached my WorkflowHandler class
Thanks, that's some substance. I've crosschecked with this documentation chapter and a couple of default implementations, and didn't find anything suspect. I've not implemented such a handler myself, so I'm leaving the field for someone who did, and who might remember if there were any changes in this version.
One more hint though: The linked documentation chapter also asks for some implementation in LocalServiceImpl - I take it that you did this already (just in case this changed in the last version), otherwise you might want to go through that chapter.
Edit: And one more hint: Looking at the sourcecode where the NullpointerException is triggered: Do you have an AssetRenderer for this entity? Is it properly registered? E.g. can you show it in AssetPublisher when there's no workflow involved?
  try {
&nbsp;&nbsp;&nbsp; AssetRenderer<!--?--> assetRenderer = workflowHandler.getAssetRenderer(
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; classPK);
&nbsp;&nbsp;&nbsp; return assetRenderer.hasViewPermission(permissionChecker); // this is line 169
&nbsp; }
&nbsp;&nbsp;&nbsp; catch (PortalException pe) {
&nbsp;&nbsp;&nbsp; _log.error(pe, pe);
&nbsp; }
thumbnail
ali yeganeh, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Regular Member Posts: 148 Join Date: 5/1/19 Recent Posts
Hi dear Olaf Kock
I found out where the problem is...
When i log in with an administrator user i can see my notifications but if I log in with a regular user, I get an exception
2019-12-03 09:51:39.910 ERROR [http-nio-8080-exec-4][BaseUserNotificationHandler:88] Unable to interpret notification
java.lang.NullPointerException
&nbsp;&nbsp; &nbsp;at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasAssetViewPermission(WorkflowTaskPermissionChecker.java:169)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.workflow.task.web.internal.permission.WorkflowTaskPermissionChecker.hasPermission(WorkflowTaskPermissionChecker.java:59)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.workflow.task.web.internal.notifications.WorkflowTaskUserNotificationHandler._hasPermission(WorkflowTaskUserNotificationHandler.java:143)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.workflow.task.web.internal.notifications.WorkflowTaskUserNotificationHandler.getLink(WorkflowTaskUserNotificationHandler.java:98)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.kernel.notifications.BaseUserNotificationHandler.doInterpret(BaseUserNotificationHandler.java:149)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.kernel.notifications.BaseUserNotificationHandler.interpret(BaseUserNotificationHandler.java:57)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.kernel.notifications.UserNotificationManagerUtil._interpret(UserNotificationManagerUtil.java:294)
&nbsp;&nbsp; &nbsp;at com.liferay.portal.kernel.notifications.UserNotificationManagerUtil.interpret(UserNotificationManagerUtil.java:110)
&nbsp;&nbsp; &nbsp;at org.apache.jsp.notifications.view_jsp._jspService(view_jsp:387)
...
How can i assign view permission to users for see their notification programmatically
thumbnail
ali yeganeh, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Regular Member Posts: 148 Join Date: 5/1/19 Recent Posts
Hi dear Olaf Kock
Was the new question I asked clearer?
thumbnail
ali yeganeh, modified 4 Years ago.

RE: Unable to interpret notification in Liferay 7.2.1 CE GA2

Regular Member Posts: 148 Join Date: 5/1/19 Recent Posts
Hi
I asked a better question about Unable to interpret notification in Liferay 7.2.1 CE GA2 in a new post .