ICEfaces
  1. ICEfaces
  2. ICE-2527

Seam jBPM redirects causing redirect loop.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7DR#2
    • Fix Version/s: 1.7
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces + Seam

      Description

      When Seam jBPM does page navigation using redirects, there's a mismatch in Pageflow.validatePageflow(Seam code)

      //now check that the restored view id matches what we expect
               //from the pageflow node
               //TODO: we need some way to disable this check, since users
               // might want some adhoc nav in and out of a pageflow?
               String viewId = Pages.getViewId(facesContext);
               if ( !viewId.equals( getPage().getViewId() ) )
               {
                  illegalNavigationError();
               }


      In my example, the viewId from the facesContext object is pageD.seam, whereas the viewId from getPage().getViewId() is pageD.xhtml. This mismatch causes illegalNavigationError to be called, which does page navigation to the current page (in my case) which causes the redirection loop.

      We need to understand why the difference in page viewID representation.

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15467 Wed Dec 19 17:28:07 MST 2007 greg.dick ICE-2527 Slightly modified getRenderedViewId to correctly use the default suffix if the parameter is not defined, but to also log a debug level message warning the user
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/application/D2DViewHandler.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15466 Wed Dec 19 17:26:20 MST 2007 greg.dick ICE-2527 Slightly modified to be able to return a typical viewId suffix particular to Facelets.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/facelets/D2DFaceletViewHandler.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15463 Wed Dec 19 16:54:05 MST 2007 greg.dick ICE-2527 Moved getRenderedViewId from D2DFaceletViewHandler to D2DViewHandler as the functionality is required there, and it makes better sense to have it in the superclass. Also removed mungeViewId, which was doing the same thing, only poorly.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/facelets/D2DFaceletViewHandler.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15462 Wed Dec 19 16:53:52 MST 2007 greg.dick ICE-2527 Moved getRenderedViewId from D2DFaceletViewHandler to D2DViewHandler as the functionality is required there, and it makes better sense to have it in the superclass. Also removed mungeViewId, which was doing the same thing, only poorly.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/application/D2DViewHandler.java

          People

          • Assignee:
            Unassigned
            Reporter:
            Greg Dick
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: