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

Failed request dispatching pollutes subsequent dispatches causing processing with incorrect servlet

    Details

      Description

      At present (46ccfa1f25), when dispatching to a JSP with a combination of ErrorTag and ButtonTag, a NPE in InvokerFilter when processing the former will affect the processing of the latter.

      Specially the former's servlet path will be associated with the processing Servlet of the latter when it gets added to the DirectServletRegistry.

      The result is ErrorTag attempts to render as a ButtonTag.

      Steps to reproduce:

      1. Deploy the attached example module
      2. Log in as admin and clear the "Direct Servlet Cache"
      3. Immediately after request the following URL http://localhost:8080/web/guest/home?p_p_id=directrequestdispatcherissue&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&_directrequestdispatcherissue_mvcRenderCommandName=%2Ftest%2Frequestdispatcher_test

       Expected result: The portlet renders in POP_UP windowstate and shows a ErrorTag message between the two "#" characters.

       Actual result: No error is shown as described. Subsequent requests to the URL will also fail identically, because the wrong servlet mapping is sticky

       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              brian.chan Brian Chan
              Reporter:
              id30721 id30721
              Participants of an Issue:
              Recent user:
              Csaba Turcsan
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Days since last comment:
                2 years, 4 weeks, 1 day ago

                  Packages

                  Version Package
                  7.1.10 DXP FP3
                  7.1.1 CE GA2
                  7.1.10.1 SP1
                  7.1.X
                  Master