ICEfaces
  1. ICEfaces
  2. ICE-3328

PartialSubmit does not work with Spring WebFlow 2.0.2

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Spring 2.0.2.

      Description

      When accessing an ICEfaces page that has a component with partialSubmit set to true, the following exception is thrown:

      java.lang.NullPointerException

      com.icesoft.faces.application.D2DViewHandler.findComponent(D2DViewHandler.
      java:731)

      This configuration worked properly for WebFlow 1.0.5 and ICEFaces 1.6.2.

        Activity

        Tyler Johnson created issue -
        Tyler Johnson made changes -
        Field Original Value New Value
        Support Case References https://www.icesoft.ca:4443/supportilla/show_bug.cgi?id=5043
        Ken Fyten made changes -
        Fix Version/s 1.7.2 [ 10130 ]
        Assignee Ted Goddard [ ted.goddard ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17218 Wed Jul 23 15:51:16 MDT 2008 ted.goddard added partialSubmit for testing (ICE-3328)
        Files Changed
        Commit graph MODIFY /projects/swf-booking-icefaces/trunk/swf-booking-icefaces/src/main/webapp/WEB-INF/flows/main/enterSearchCriteria.xhtml
        Hide
        Ted Goddard added a comment -

        One of the key factors in this bug is that SWF is performing its own state saving and this is colliding with the persistent component tree maintained by ICEfaces.

        A fix being investigated is as follows:

        • move partialSubmit functionality out of the Servlet stack into a PhaseListener
        • add state saving capability to UIXhtmlComponent

        Note that the partialSubmit functionality cannot remain in the Servlet stack when standard JSF state saving is performed – the component tree does not exist prior to ViewHandler execution. An alternative possibility is to move partial submit into the ViewHandler, however, 3rd parth PhaseListener interaction is simpler, so it is better to leave less functionality in the ViewHandler.

        Show
        Ted Goddard added a comment - One of the key factors in this bug is that SWF is performing its own state saving and this is colliding with the persistent component tree maintained by ICEfaces. A fix being investigated is as follows: move partialSubmit functionality out of the Servlet stack into a PhaseListener add state saving capability to UIXhtmlComponent Note that the partialSubmit functionality cannot remain in the Servlet stack when standard JSF state saving is performed – the component tree does not exist prior to ViewHandler execution. An alternative possibility is to move partial submit into the ViewHandler, however, 3rd parth PhaseListener interaction is simpler, so it is better to leave less functionality in the ViewHandler.
        Hide
        Ted Goddard added a comment -

        Using the above fix, the SWF booking demo is functional up to "book hotel" including partial submit.

        Show
        Ted Goddard added a comment - Using the above fix, the SWF booking demo is functional up to "book hotel" including partial submit.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17230 Thu Jul 24 15:51:27 MDT 2008 ted.goddard PartialSubmitPhaseListener for SWF and state saving compatibility (ICE-3328)
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/component/UIXhtmlComponent.java
        Commit graph MODIFY /icefaces/trunk/icefaces/core/conf/META-INF/faces-config.xml
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/ReceiveSendUpdates.java
        Commit graph MODIFY /icefaces/trunk/icefaces/core/conf/just-ice/faces-config.xml
        Commit graph ADD /icefaces/trunk/icefaces/core/src/com/icesoft/faces/application/PartialSubmitPhaseListener.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17248 Tue Jul 29 14:24:36 MDT 2008 ted.goddard PartialSubmitPhaseListener for SWF and state saving compatibility (ICE-3328)
        Files Changed
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/conf/just-ice/faces-config.xml
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/component/UIXhtmlComponent.java
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/http/core/ReceiveSendUpdates.java
        Commit graph ADD /icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/application/PartialSubmitPhaseListener.java
        Commit graph MODIFY /icefaces/branches/icefaces-1.7/icefaces/core/conf/META-INF/faces-config.xml
        Hide
        Mark Collette added a comment -

        In the UIXhtmlComponent state saving, standardAttributes and elValueExpressions should detect when they reference Collections.EMPTY_MAP, and just save nulls. When they restore, they could go back from nulls to Collections.EMPTY_MAP. That way, after save and restore, they won't inadvertantly be referencing new, unique, empty maps, and take up more memory.

        Show
        Mark Collette added a comment - In the UIXhtmlComponent state saving, standardAttributes and elValueExpressions should detect when they reference Collections.EMPTY_MAP, and just save nulls. When they restore, they could go back from nulls to Collections.EMPTY_MAP. That way, after save and restore, they won't inadvertantly be referencing new, unique, empty maps, and take up more memory.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17534 Tue Sep 09 15:34:53 MDT 2008 ted.goddard checking for null responseWriter prior to release() (ICE-3328)
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/BridgeFacesContext.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #17538 Wed Sep 10 08:43:20 MDT 2008 ted.goddard avoiding intermediate release() with SWF (ICE-3328)
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/BridgeFacesContext.java
        Ted Goddard made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Ted Goddard [ ted.goddard ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Tyler Johnson
          • Votes:
            5 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: