Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8DR#2
    • Fix Version/s: 1.8RC1, 1.8
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      JSF 1.1, 1.2

      Description

      If you have an inputFile and a selectManyList in the same form, and upload a file, then the selectManyList will complain of a conversion error.

      I think it's because of the new inputFile code that does full lifecycles, which relies on the surrounding form to do decodes so that the inputFile may decode. This is having the side-effect of allowing other components to decode, and with nothing in the request parameter map for them, they can fail.

        Activity

        Hide
        Mandeep Hayher added a comment -

        Test application available in qa repository 'repo\qa\trunk\Regression\ICE-3916'

        Show
        Mandeep Hayher added a comment - Test application available in qa repository 'repo\qa\trunk\Regression\ ICE-3916 '
        Hide
        Mark Collette added a comment -

        Originally I looked into ways of having the form component be set submitted, buthave only the inputFile decode, and not any other components in the form. There were problems with that though, since it would only work with an <ice:form> and not an <h:form>. As well, since each process[Decodes|Validators|Updates] method can override its iteration, in ways that the ice:form can not predict or replicate, that wasn't going to be viable if the inputFile was within certain container components.

        Instead, the FileUploadPhaseListener queues the events for the inputFile itself. This may still cause problems with UIData of (pseudo) different inputFiles, but that wasn't supported by the previous incarnation of inputFile, so it wouldn't be a regression either. The form is NOT set submitted, so neither it, nor anything within it will decode, so there shouldn't be a problem with the empty RequestParameterMap. And more so, nothing can fail to validate, and so interfere with the inputFile's processes.

        Subversion 18196
        icefaces\component\src\com\icesoft\faces\component\inputfile\InputFile.java
        icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileRenderer.java
        icefaces\core\src\com\icesoft\faces\component\inputfile\FileUploadPhaseListener.java
        icefaces\core\src\com\icesoft\faces\component\inputfile\InputFileProgressEvent.java
        icefaces\core\src\com\icesoft\faces\component\inputfile\InputFileSetFileEvent.java
        icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileProgressEvent.java
        icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileSetFileEvent.java

        Show
        Mark Collette added a comment - Originally I looked into ways of having the form component be set submitted, buthave only the inputFile decode, and not any other components in the form. There were problems with that though, since it would only work with an <ice:form> and not an <h:form>. As well, since each process [Decodes|Validators|Updates] method can override its iteration, in ways that the ice:form can not predict or replicate, that wasn't going to be viable if the inputFile was within certain container components. Instead, the FileUploadPhaseListener queues the events for the inputFile itself. This may still cause problems with UIData of (pseudo) different inputFiles, but that wasn't supported by the previous incarnation of inputFile, so it wouldn't be a regression either. The form is NOT set submitted, so neither it, nor anything within it will decode, so there shouldn't be a problem with the empty RequestParameterMap. And more so, nothing can fail to validate, and so interfere with the inputFile's processes. Subversion 18196 icefaces\component\src\com\icesoft\faces\component\inputfile\InputFile.java icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileRenderer.java icefaces\core\src\com\icesoft\faces\component\inputfile\FileUploadPhaseListener.java icefaces\core\src\com\icesoft\faces\component\inputfile\InputFileProgressEvent.java icefaces\core\src\com\icesoft\faces\component\inputfile\InputFileSetFileEvent.java icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileProgressEvent.java icefaces\component\src\com\icesoft\faces\component\inputfile\InputFileSetFileEvent.java

          People

          • Assignee:
            Unassigned
            Reporter:
            Mark Collette
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: