ICEfaces
  1. ICEfaces
  2. ICE-1628

FileUploadServlet should use the correct viewNumber to get the correct PersistentFacesState

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.3
    • Fix Version/s: 1.7, 1.7.1
    • Component/s: None
    • Labels:
      None
    • Environment:
      Liferay + Portlets + IceFaces
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      For this to work, I've placed in com.icesoft.faces.component.inputfile.FileUploadServlet, in doPost(...) method the following code:

      request.getSession(false).setAttribute(PersistentFacesServlet.CURRENT_VIEW_NUMBER, request.getParameter("viewNumber"));

      where the viewNumber is a request parameter encoded in the iframe generated by the InputFileRenderer class.

      In com.icesoft.faces.component.inputfile.InputFile you must have(where viewNumber is encoded in the queryString):

      String getQueryString(FacesContext facesContext) {
              String inputTextClass = getInputTextClass();
              String buttonClass = getButtonClass();
              String label = getLabel();
              boolean uniqueFolder = isUniqueFolder();
              String queryString =
                      "?" + FILE_UPLOAD_COMPONENT_ID + "=" + getRegistrationId() +
                              "&disabled=" + isDisabled() +
                              "&inputTextClass=" + inputTextClass +
                              "&buttonClass=" + buttonClass +
                              "&label=" + label +
                              "&uniqueFolder=" + uniqueFolder +
                              "&cssFile=" + getCssFile() +
                              "&viewNumber=" + facesContext.getExternalContext().getRequestParameterMap().get("viewNumber");
              return queryString;
          }
      Show
      For this to work, I've placed in com.icesoft.faces.component.inputfile.FileUploadServlet, in doPost(...) method the following code: request.getSession(false).setAttribute(PersistentFacesServlet.CURRENT_VIEW_NUMBER, request.getParameter("viewNumber")); where the viewNumber is a request parameter encoded in the iframe generated by the InputFileRenderer class. In com.icesoft.faces.component.inputfile.InputFile you must have(where viewNumber is encoded in the queryString): String getQueryString(FacesContext facesContext) {         String inputTextClass = getInputTextClass();         String buttonClass = getButtonClass();         String label = getLabel();         boolean uniqueFolder = isUniqueFolder();         String queryString =                 "?" + FILE_UPLOAD_COMPONENT_ID + "=" + getRegistrationId() +                         "&disabled=" + isDisabled() +                         "&inputTextClass=" + inputTextClass +                         "&buttonClass=" + buttonClass +                         "&label=" + label +                         "&uniqueFolder=" + uniqueFolder +                         "&cssFile=" + getCssFile() +                         "&viewNumber=" + facesContext.getExternalContext().getRequestParameterMap().get("viewNumber");         return queryString;     }

      Description

      The FileUploadServlet doesn't take in account the current viewNumber to retrieve the correct PersistentFacesState. This code:

      Object current_view_number = session.getAttribute(PersistentFacesServlet.CURRENT_VIEW_NUMBER);

      would only work if the PersistentFacesServlet.CURRENT_VIEW_NUMBER session attribute would have been set at each call to the FileUploadServlet servlet. If we use the 1.5.3 version of IceFaces(without setting this session attribute), the current view number is the one from the last portlet on the page.

        Activity

        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Priority P3
        Assignee Mark Collette [ mark.collette ]
        Mark Collette made changes -
        Fix Version/s 1.7.1 [ 10122 ]
        Mark Collette made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 1.7 [ 10080 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Fix Version/s 1.7.1 [ 10122 ]
        Ken Fyten made changes -
        Fix Version/s 1.7.1 [ 10122 ]
        Fix Version/s 1.7 [ 10080 ]
        Ken Fyten made changes -
        Assignee Priority P2 P3
        Ken Fyten made changes -
        Fix Version/s 1.7 [ 10080 ]
        Fix Version/s 1.7Beta1 [ 10121 ]
        Ken Fyten made changes -
        Fix Version/s 1.7Beta1 [ 10121 ]
        Fix Version/s 1.7 [ 10080 ]
        Ken Fyten made changes -
        Assignee Priority P2
        Ken Fyten made changes -
        Field Original Value New Value
        Fix Version/s 1.7 [ 10080 ]
        Assignee Mark Collette [ mark.collette ]
        Dan Leahu created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Dan Leahu
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: