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

Some widgets in a mapped display page break when you click on them

    Details

      Description

      Steps to reproduce:

      1. Create a display page template
      2. Map the display page to a basic web content
      3. Add an asset publisher and a blogs widget to the template
      4. Add a blogs entry
      5. Add a web content that uses the display page template
      6. View the web content through the friendly URL and click on content in the asset publisher, excluding itself, and click on the blog entry in the blog widget

      Expected result:

      The widgets are usable

      Actual result:

      When you click on content in the asset publisher, not including itself, there is an internal server error that says an error occurred while accessing the requested resource. There is also an error in the console log:

      2019-05-01 16:19:15.137 WARN [http-nio-8080-exec-7][PortalImpl:6666] java.lang.NullPointerException
      java.lang.NullPointerException
      at com.liferay.portal.kernel.portlet.PortletIdCodec.decodePortletName(PortletIdCodec.java:48)
      at com.liferay.portal.service.impl.PortletLocalServiceImpl.fetchPortletById(PortletLocalServiceImpl.java:404)
      at com.liferay.portal.service.impl.PortletLocalServiceImpl.getPortletById(PortletLocalServiceImpl.java:522)
      at sun.reflect.GeneratedMethodAccessor288.invoke(Unknown Source)
      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.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
      at com.sun.proxy.$Proxy62.getPortletById(Unknown Source)
      at com.liferay.portal.kernel.service.PortletLocalServiceUtil.getPortletById(PortletLocalServiceUtil.java:365)
      at com.liferay.portlet.internal.PortletURLFactoryImpl.create(PortletURLFactoryImpl.java:79)
      at com.liferay.portal.kernel.portlet.PortletURLFactoryUtil.create(PortletURLFactoryUtil.java:57)
      at com.liferay.portal.struts.FindStrutsAction.execute(FindStrutsAction.java:98)
      at com.liferay.portal.struts.ActionAdapter.execute(ActionAdapter.java:40)
      at com.liferay.portal.struts.PortalRequestProcessor._process(PortalRequestProcessor.java:405)
      at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:154)
      at com.liferay.portal.internal.servlet.MainServlet.doGet(MainServlet.java:201)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
      at com.liferay.portal.internal.servlet.MainServlet.service(MainServlet.java:620)
      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:119)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:144)
      at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:341)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:58)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:144)
      at com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:340)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:144)
      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:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:144)
      at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:263)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:144)
      at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:178)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      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:207)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:101)
      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)
      2019-05-01 16:19:15.199 ERROR [http-nio-8080-exec-7][status_jsp:868] null

      When you click on the blog entry in the blog widget the page goes blank and there is another error in the console log :

      2019-05-01 16:19:34.669 ERROR [http-nio-8080-exec-6][IncludeTag:128] Current URL /web/guest/display-page/-/blogs/blog?assetEntryId=34067&_com_liferay_blogs_web_portlet_BlogsPortlet_redirect=http%3A%2F%2Flocalhost%3A8080%2Fweb%2Fguest%2Fdisplay-page%3Fp_p_id%3Dcom_liferay_blogs_web_portlet_BlogsPortlet%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26assetEntryId%3D34067%26_com_liferay_blogs_web_portlet_BlogsPortlet_cur%3D1%26_com_liferay_blogs_web_portlet_BlogsPortlet_delta%3D20 generates exception: java.lang.NullPointerException
      java.lang.NullPointerException
      at com.liferay.layout.type.controller.display.page.internal.product.navigation.control.menu.EditDisplayPageMenuProductNavigationControlMenuEntry.isShow(EditDisplayPageMenuProductNavigationControlMenuEntry.java:115)
      at com.liferay.product.navigation.control.menu.internal.util.ProductNavigationControlMenuEntryRegistryImpl.lambda$getProductNavigationControlMenuEntries$0(ProductNavigationControlMenuEntryRegistryImpl.java:85)
      at com.liferay.portal.kernel.util.ListUtil.filter(ListUtil.java:138)
      at com.liferay.portal.kernel.util.ListUtil.filter(ListUtil.java:149)
      at com.liferay.product.navigation.control.menu.internal.util.ProductNavigationControlMenuEntryRegistryImpl.getProductNavigationControlMenuEntries(ProductNavigationControlMenuEntryRegistryImpl.java:81)
      at org.apache.jsp.control_005fmenu.page_jsp._jspService(page_jsp:169)
      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:321)
      at com.liferay.portal.osgi.web.servlet.jsp.compiler.internal.JspServlet.service(JspServlet.java:332)
      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.portal.servlet.DirectServletPathRegisterDispatcher.include(DirectServletPathRegisterDispatcher.java:67)
      at com.liferay.portal.servlet.DirectRequestDispatcherFactoryImpl$IndirectRequestDispatcher.include(DirectRequestDispatcherFactoryImpl.java:202)

      Reproduced on:

      Tomcat 9.0.17 + MySQL 5.7.

      Portal Master GIT Commit: 486ebd420c51f5094068b7787750a329c7398cb5

        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:
                  14 weeks, 6 days ago

                  Packages

                  Version Package
                  7.1.10 DXP FP12
                  Master