ICEfaces
  1. ICEfaces
  2. ICE-5853

Glimmer Regression: ICE-2283 failing with Server Internal Error w/ deltaSubmit enabled

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Beta1
    • Fix Version/s: 2.0-Beta2, 2.0.0
    • Component/s: None
    • Labels:
      None
    • Environment:
      Tomcat6 & FF3.6

      Description

      Was working fine on Glimmer revision# 21810
      Broken on Glimmer revision# 21816

      Test application available at 'repo\qa\trunk\Regression-Icefaces2\Nightly\ICE-2283'
      1)Load the application
      2)Select some check box
      3)Deselect some check box
      4)Server Internal Error popup is seen when a checkbox is deselected

        Issue Links

          Activity

          Hide
          Deryk Sinotte added a comment -

          I could not reproduce the issue.

          I tried running the indicated test case on both Glassfish v3 (with Mojarra 2.0.3 snapshot) and Tomcat 6 (with Mojarra 2.0.2 FCS b10) and I used both Firefox 3.6 and Chrome. There were no server errors and the columns all turned on and off as expected. I was running against revision 21817 which has a minor adjustment for using a utility for writing script markup. If there are other steps to getting the behaviour to manifest, I can try them but it doesn't appear to be a problem at the moment.

          Show
          Deryk Sinotte added a comment - I could not reproduce the issue. I tried running the indicated test case on both Glassfish v3 (with Mojarra 2.0.3 snapshot) and Tomcat 6 (with Mojarra 2.0.2 FCS b10) and I used both Firefox 3.6 and Chrome. There were no server errors and the columns all turned on and off as expected. I was running against revision 21817 which has a minor adjustment for using a utility for writing script markup. If there are other steps to getting the behaviour to manifest, I can try them but it doesn't appear to be a problem at the moment.
          Hide
          Mandeep Hayher added a comment -

          Glimmer revision# 21819
          The test-case failed again in automated regression test.
          Following are the step to reproduce it manually
          1) load the application (only checkbox 'column1' & 'column3 are selected)
          2) select checkbox 'column2'
          3) deselect checkbox 'coulmn3'

          Server Internal Error popup is displayed.

          Also noticed that once the error is displayed, selecting one checkbox deselects another checkbox.

          Show
          Mandeep Hayher added a comment - Glimmer revision# 21819 The test-case failed again in automated regression test. Following are the step to reproduce it manually 1) load the application (only checkbox 'column1' & 'column3 are selected) 2) select checkbox 'column2' 3) deselect checkbox 'coulmn3' Server Internal Error popup is displayed. Also noticed that once the error is displayed, selecting one checkbox deselects another checkbox.
          Hide
          Deryk Sinotte added a comment -

          I did a clean checkout of glimmer and rebuilt the test case against, ran it Tomcat, and using Firefox it worked perfectly. Mandeep, please send me the .war file you've built for this case so I can compare it to what I'm running. Also, if there is relevant logging related to the Servler Internal Error please attach it to this case.

          Show
          Deryk Sinotte added a comment - I did a clean checkout of glimmer and rebuilt the test case against, ran it Tomcat, and using Firefox it worked perfectly. Mandeep, please send me the .war file you've built for this case so I can compare it to what I'm running. Also, if there is relevant logging related to the Servler Internal Error please attach it to this case.
          Hide
          Mandeep Hayher added a comment -

          Following is seen on the server console
          WARNING: 0
          java.lang.ArrayIndexOutOfBoundsException: 0
          at org.icefaces.event.DeltaSubmitPhaseListener$DeltaHttpServletRequest.getParameter(DeltaSubmitPhaseListener.java:236)
          at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:71)
          at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:52)
          at java.util.Collections$UnmodifiableMap.get(Collections.java:1282)
          at com.icesoft.faces.renderkit.dom_html_basic.CheckboxRenderer.decode(CheckboxRenderer.java:57)

          Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
          at org.icefaces.event.DeltaSubmitPhaseListener$DeltaHttpServletRequest.getParameter(DeltaSubmitPhaseListener.java:236)
          at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:71)
          at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:52)

          Show
          Mandeep Hayher added a comment - Following is seen on the server console WARNING: 0 java.lang.ArrayIndexOutOfBoundsException: 0 at org.icefaces.event.DeltaSubmitPhaseListener$DeltaHttpServletRequest.getParameter(DeltaSubmitPhaseListener.java:236) at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:71) at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:52) at java.util.Collections$UnmodifiableMap.get(Collections.java:1282) at com.icesoft.faces.renderkit.dom_html_basic.CheckboxRenderer.decode(CheckboxRenderer.java:57) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.icefaces.event.DeltaSubmitPhaseListener$DeltaHttpServletRequest.getParameter(DeltaSubmitPhaseListener.java:236) at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:71) at com.sun.faces.context.RequestParameterMap.get(RequestParameterMap.java:52)
          Hide
          Mandeep Hayher added a comment -

          Glimmer revision# 21837

          Problem is reproducible when tested with DeltaSubmit & with CompressDOM.

          Show
          Mandeep Hayher added a comment - Glimmer revision# 21837 Problem is reproducible when tested with DeltaSubmit & with CompressDOM.
          Hide
          Deryk Sinotte added a comment -

          This is reproducible with deltaSubmit by itself. I don't think compressDOM is relevant.

          There are a couple of situations where I can add checks for parameters where the String array is not null but is empty (length == 0). However, this only handles the ArrayIndexOutOfBoundsExceptions and causes the example to fail anyway because it looks like it's losing some state.

          Show
          Deryk Sinotte added a comment - This is reproducible with deltaSubmit by itself. I don't think compressDOM is relevant. There are a couple of situations where I can add checks for parameters where the String array is not null but is empty (length == 0). However, this only handles the ArrayIndexOutOfBoundsExceptions and causes the example to fail anyway because it looks like it's losing some state.
          Hide
          Deryk Sinotte added a comment -

          Need to get deltaSubmit working in compat mode for this case to pass when deltaSubmit is on.

          Show
          Deryk Sinotte added a comment - Need to get deltaSubmit working in compat mode for this case to pass when deltaSubmit is on.
          Hide
          Deryk Sinotte added a comment -

          This regression failure is blocked by the more general issue of deltaSubmit in compatibility mode.

          Show
          Deryk Sinotte added a comment - This regression failure is blocked by the more general issue of deltaSubmit in compatibility mode.
          Hide
          Mircea Toma added a comment -

          Remove entry from previous parameter map when the value arrays is empty. Avoid removing submitting element corresponding parameter name from the list of parameters that don't participate in the parameter diffing since iceSubmit/iceSubmitPartial send it twice.
          Delay the parameters calculation on page load to make sure all the form elements are captured during calculation.

          Show
          Mircea Toma added a comment - Remove entry from previous parameter map when the value arrays is empty. Avoid removing submitting element corresponding parameter name from the list of parameters that don't participate in the parameter diffing since iceSubmit/iceSubmitPartial send it twice. Delay the parameters calculation on page load to make sure all the form elements are captured during calculation.
          Hide
          Mircea Toma added a comment -

          Factor out initial parameter calculation into a separate function, ice.calculateInitalParameters(). Renderers belonging to 'javax.faces.Form' family are decorated, a 'script' element is rendered right before the 'form' end tag to make sure ice.calculateInitalParameters executes correctly.

          Show
          Mircea Toma added a comment - Factor out initial parameter calculation into a separate function, ice.calculateInitalParameters(). Renderers belonging to 'javax.faces.Form' family are decorated, a 'script' element is rendered right before the 'form' end tag to make sure ice.calculateInitalParameters executes correctly.

            People

            • Assignee:
              Mircea Toma
              Reporter:
              Mandeep Hayher
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: