Uploaded image for project: 'MyFaces Trinidad'
  1. MyFaces Trinidad
  2. TRINIDAD-307

Performance optimization in XMLMenuModel.getFocusRowKey() breaks menu model when called before the RenderResponse Phase of the request lifecycle.

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0.0-incubating-core
    • 1.0.0-incubating-core
    • None
    • None

    Description

      In previous versions of ADF Faces, XMLMenuModel.getFocusRowKey() was only called during the RenderResponse phase of the request lifecycle, AFTER navigation had occurred. It was called 5 or more times to render the new page, each time returning the same value. As an optimization, a static variable was used to prevent the logic from executing after the first time getFocusRowKey() was called. Instead, the previous focus path was returned. Since the menu model's scope is request, everything reset after the request finished. In the new re-architected version of ADF Faces, getFocusRowKey() is called in other phases, before the RenderResponse phase. This incorrectly set the static variable so that when getFocusRowKey() is called during the RenderResponse phase – even the first time – the incorrect focus path is returned.

      The solution (for now) is to remove the optimization. I have an optimization but it needs to be fully tested.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            jeanne.waldman@oracle.com Jeanne Waldman
            garykind Gary Kind
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment