ICEfaces
  1. ICEfaces
  2. ICE-2689

selectOneRadio not submitting with partialSubmit=true

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7DR#3
    • Fix Version/s: 1.7Beta1, 1.7
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows XP, Tomcat 5.5.20, JDK 5

      Description

      selectOneRadio does not submit when changed and partialSubmit=true. There is no sign of activity and the setter is never hit. This seems to have broken between DR2 and DR3 since it was working before.

        Activity

        Hide
        Nicklas Karlsson added a comment -

        To be more specific, I had a pre-DR3 checkout from "Implementation-Version: x.x.x_x (2007-11-22 08:43 EET)" where I recall it still worked.

        Show
        Nicklas Karlsson added a comment - To be more specific, I had a pre-DR3 checkout from "Implementation-Version: x.x.x_x (2007-11-22 08:43 EET)" where I recall it still worked.
        Hide
        yip.ng added a comment -

        It seems to work fine in component showcase on the trunk. Need to investigate further and reproduce the problem first.

        Show
        yip.ng added a comment - It seems to work fine in component showcase on the trunk. Need to investigate further and reproduce the problem first.
        Hide
        yip.ng added a comment -

        Seems to work fine too with the component-showcase-tomcat6.war in 1.7DR#3 deployed.

        Show
        yip.ng added a comment - Seems to work fine too with the component-showcase-tomcat6.war in 1.7DR#3 deployed.
        Hide
        yip.ng added a comment -

        Built component showcase in ICEfaces-1.7.0-DR3-bin bundle and ran it on Tomcat 5.5.25. It worked fine. See the attached screenshot.

        Show
        yip.ng added a comment - Built component showcase in ICEfaces-1.7.0-DR3-bin bundle and ran it on Tomcat 5.5.25. It worked fine. See the attached screenshot.
        Hide
        yip.ng added a comment -

        Created a simple webapp and built and ran it using ICEfaces-1.7.0-DR3-bin/icefaces/lib. Still worked fine. See attached screenshot.

        Here is the jspx source:

        <ice:form>
        <ice:panelGroup>
        <ice:selectOneRadio value="#

        {selectionTags.selectedDrink}" partialSubmit="true">
        <f:selectItems value="#{selectionTags.drinkItems}"/>
        </ice:selectOneRadio>
        </ice:panelGroup>
        <ice:panelGroup>
        <ice:outputText value="#{selectionTags.selectedDrink}

        "/>
        </ice:panelGroup>
        </ice:form>

        And here is the Tomcat output showing the Tomcat, JDK and ICEfaces versions:

        cmd /c C:\apache-tomcat-5.5.25\bin\catalina.bat run
        Using CATALINA_BASE: C:\Documents and Settings\yng\.IntelliJIdea70\system\tomcat_Unnamed_ICE-268940876433
        Using CATALINA_HOME: C:\apache-tomcat-5.5.25
        Using CATALINA_TMPDIR: C:\apache-tomcat-5.5.25\temp
        Using JRE_HOME: C:\Program Files\Java\jdk1.5.0_14
        ......
        ICEsoft Technologies, Inc.
        ICEfaces 1.7.0 DR3
        Build number: 11
        Revision: 15481

        Show
        yip.ng added a comment - Created a simple webapp and built and ran it using ICEfaces-1.7.0-DR3-bin/icefaces/lib. Still worked fine. See attached screenshot. Here is the jspx source: <ice:form> <ice:panelGroup> <ice:selectOneRadio value="# {selectionTags.selectedDrink}" partialSubmit="true"> <f:selectItems value="#{selectionTags.drinkItems}"/> </ice:selectOneRadio> </ice:panelGroup> <ice:panelGroup> <ice:outputText value="#{selectionTags.selectedDrink} "/> </ice:panelGroup> </ice:form> And here is the Tomcat output showing the Tomcat, JDK and ICEfaces versions: cmd /c C:\apache-tomcat-5.5.25\bin\catalina.bat run Using CATALINA_BASE: C:\Documents and Settings\yng\.IntelliJIdea70\system\tomcat_Unnamed_ICE-268940876433 Using CATALINA_HOME: C:\apache-tomcat-5.5.25 Using CATALINA_TMPDIR: C:\apache-tomcat-5.5.25\temp Using JRE_HOME: C:\Program Files\Java\jdk1.5.0_14 ...... ICEsoft Technologies, Inc. ICEfaces 1.7.0 DR3 Build number: 11 Revision: 15481
        Hide
        Nicklas Karlsson added a comment -

        08:39:21,711 INFO [D2DViewHandler]
        ICEsoft Technologies, Inc.
        ICEfaces 1.7.0 DR3
        Build number: 11
        Revision: 15481

        <ice:selectOneRadio
        value="#

        {hyväksymistoiminnot.hyväksyntätyyppi}

        "
        title="#

        {messages['dialogi.hyväksyntä.tyyppi.kelluke']}

        "
        layout="pageDirection"
        immediate="true"
        partialSubmit="true">
        <s:selectItems
        value="#

        {hyväksymistoiminnot.hyväksyntätyypit}

        "
        var="hyväksyntätyyppi"
        label="#

        {messages[hyväksyntätyyppi.avain]}

        "/>
        <s:convertEnum />
        </ice:selectOneRadio>

        It could also be Seam or facelets related. I have a <ice:form> which does an <ui:include> which contains an conditional <s:fragment> which does another <ui:include> and the included page uses a temaplate But one would think that once it ends up on a page, the includes etc wouldn't matter. Let's see if we can get comments from someone with a more simple scenario...

        Show
        Nicklas Karlsson added a comment - 08:39:21,711 INFO [D2DViewHandler] ICEsoft Technologies, Inc. ICEfaces 1.7.0 DR3 Build number: 11 Revision: 15481 <ice:selectOneRadio value="# {hyväksymistoiminnot.hyväksyntätyyppi} " title="# {messages['dialogi.hyväksyntä.tyyppi.kelluke']} " layout="pageDirection" immediate="true" partialSubmit="true"> <s:selectItems value="# {hyväksymistoiminnot.hyväksyntätyypit} " var="hyväksyntätyyppi" label="# {messages[hyväksyntätyyppi.avain]} "/> <s:convertEnum /> </ice:selectOneRadio> It could also be Seam or facelets related. I have a <ice:form> which does an <ui:include> which contains an conditional <s:fragment> which does another <ui:include> and the included page uses a temaplate But one would think that once it ends up on a page, the includes etc wouldn't matter. Let's see if we can get comments from someone with a more simple scenario...
        Hide
        Nicklas Karlsson added a comment -

        And so that the test case wouldn't bee too simple, the template itself is a <ice:panelPopup>...

        Show
        Nicklas Karlsson added a comment - And so that the test case wouldn't bee too simple, the template itself is a <ice:panelPopup>...
        Hide
        Christophe Taverne added a comment -

        Hi,

        I tried to detail the problem on the forum.

        http://www.icefaces.org/JForum/posts/list/0/7043.page#30372

        regards

        Show
        Christophe Taverne added a comment - Hi, I tried to detail the problem on the forum. http://www.icefaces.org/JForum/posts/list/0/7043.page#30372 regards
        Hide
        yip.ng added a comment -

        Looks like it has more to do with valuechangeListener than partialSubmit.

        Show
        yip.ng added a comment - Looks like it has more to do with valuechangeListener than partialSubmit.
        Hide
        yip.ng added a comment -

        Still couldn't reproduce the problem. Here is the code I used that is similar to the code given in the forum:

        <ice:panelGroup>
        <ice:selectOneRadio value="#

        {selectionTags.selectedCountry}

        " partialSubmit="true"
        valueChangeListener="#

        {selectionTags.countryChanged}

        ">
        <f:selectItems value="#

        {selectionTags.countryItems}

        "/>
        </ice:selectOneRadio>
        </ice:panelGroup>
        <ice:panelGroup>
        <ice:selectOneMenu value="#

        {selectionTags.selectedCity}

        " partialSubmit="false" required="true">
        <f:selectItems value="#

        {selectionTags.cityItems}

        "/>
        </ice:selectOneMenu>
        </ice:panelGroup>

        Show
        yip.ng added a comment - Still couldn't reproduce the problem. Here is the code I used that is similar to the code given in the forum: <ice:panelGroup> <ice:selectOneRadio value="# {selectionTags.selectedCountry} " partialSubmit="true" valueChangeListener="# {selectionTags.countryChanged} "> <f:selectItems value="# {selectionTags.countryItems} "/> </ice:selectOneRadio> </ice:panelGroup> <ice:panelGroup> <ice:selectOneMenu value="# {selectionTags.selectedCity} " partialSubmit="false" required="true"> <f:selectItems value="# {selectionTags.cityItems} "/> </ice:selectOneMenu> </ice:panelGroup>
        Hide
        Nicklas Karlsson added a comment -

        Christophe,

        Could you comment on your usage scenario? Are you using facelets or Seam? Is the control on a modal panel or somewhere else. Just looking for a pattern somewhere...

        Show
        Nicklas Karlsson added a comment - Christophe, Could you comment on your usage scenario? Are you using facelets or Seam? Is the control on a modal panel or somewhere else. Just looking for a pattern somewhere...
        Hide
        Nicklas Karlsson added a comment -

        Or should we just check out one version per day since 2007-11-22 and see where it stops working and the start looking at the changed code?

        Show
        Nicklas Karlsson added a comment - Or should we just check out one version per day since 2007-11-22 and see where it stops working and the start looking at the changed code?
        Hide
        Christophe Taverne added a comment -

        Hi, thanks for you tests!

        We are using jboss 4.2.2. Not facelets nor seam.
        Sorry, yes controls are on a modal popup panel

        But we have the problem too on a non modal panel.

        When we debug the application with myEclipse. We don't go into the valuechangelistener function ??

        I will do other tests monday and give you more details on the topic.

        When I get time I could test each version on the svn to give you the affected version.

        regards,
        Chris

        Show
        Christophe Taverne added a comment - Hi, thanks for you tests! We are using jboss 4.2.2. Not facelets nor seam. Sorry, yes controls are on a modal popup panel But we have the problem too on a non modal panel. When we debug the application with myEclipse. We don't go into the valuechangelistener function ?? I will do other tests monday and give you more details on the topic. When I get time I could test each version on the svn to give you the affected version. regards, Chris
        Hide
        Mark Collette added a comment -

        I tried many different variations of this, with the HEAD code and 1.7 DR3, inside modal and non-modal panelPopup, inside a UIData parent or not, with a peer having required=true or not, using SelectItem[] or List<SelectItem>, all with JBoss 4.2.x. Basically, any subtle difference I could find between the working component-showcase example, and the posted example from the forum. In the end, I loaded up the example from test.zip into MyEclipse, and found that the ValueChangeListener is being called, but there's an application coding error inside of it, which I explain in the forum:

        http://www.icefaces.org/JForum/posts/list/0/7043.page#30568

        Show
        Mark Collette added a comment - I tried many different variations of this, with the HEAD code and 1.7 DR3, inside modal and non-modal panelPopup, inside a UIData parent or not, with a peer having required=true or not, using SelectItem[] or List<SelectItem>, all with JBoss 4.2.x. Basically, any subtle difference I could find between the working component-showcase example, and the posted example from the forum. In the end, I loaded up the example from test.zip into MyEclipse, and found that the ValueChangeListener is being called, but there's an application coding error inside of it, which I explain in the forum: http://www.icefaces.org/JForum/posts/list/0/7043.page#30568
        Hide
        Nicklas Karlsson added a comment -

        Well, my case (earlier in the comments) doesn't use a ValueChangeListener so I still believe there is something fish between 2007-11-22 and DR#3.
        I will have to check out versions from that until 2007-12-20 and see where it stops working, should be doable in about... 5 tries.

        Show
        Nicklas Karlsson added a comment - Well, my case (earlier in the comments) doesn't use a ValueChangeListener so I still believe there is something fish between 2007-11-22 and DR#3. I will have to check out versions from that until 2007-12-20 and see where it stops working, should be doable in about... 5 tries.
        Hide
        Nicklas Karlsson added a comment -

        I have narrowed down the timeline to

        2007-12-11 trunk rev 15342: submits
        2007-12-12 trunk rev 15360: doesn't submit

        Could someone have a look to see what could have changed related to the issue between that day?

        Show
        Nicklas Karlsson added a comment - I have narrowed down the timeline to 2007-12-11 trunk rev 15342: submits 2007-12-12 trunk rev 15360: doesn't submit Could someone have a look to see what could have changed related to the issue between that day?
        Hide
        Christophe Taverne added a comment -

        Hi,

        Please, re open the bug.

        I have found the cause of problem.
        Thanks for your helps.
        See again the topic http://www.icefaces.org/JForum/posts/list/7043.page#30576 please.

        It is caused by layout attribute ...

        regards,
        Chris

        Show
        Christophe Taverne added a comment - Hi, Please, re open the bug. I have found the cause of problem. Thanks for your helps. See again the topic http://www.icefaces.org/JForum/posts/list/7043.page#30576 please. It is caused by layout attribute ... regards, Chris
        Hide
        Nicklas Karlsson added a comment -

        Confirmed, removing the "layout" solves my problem on DR#3 also.
        And I guess that it was tweaked somehow between 2007-12-11 and 2007-12-12...

        High five, Chris

        Show
        Nicklas Karlsson added a comment - Confirmed, removing the "layout" solves my problem on DR#3 also. And I guess that it was tweaked somehow between 2007-12-11 and 2007-12-12... High five , Chris
        Hide
        Christophe Taverne added a comment -

        I think you re perfectly right on the dates

        good news ! héhé

        Show
        Christophe Taverne added a comment - I think you re perfectly right on the dates good news ! héhé
        Hide
        Nicklas Karlsson added a comment -

        There is a checkin that looks suspicious:

        15353 Fix for ICE-2488 (Component Showcase: Stacking panel does not remember selections) [less] adnan.durrani 12/11/07 1:30 PM

        that touches

        Modified /icefaces/trunk/icefaces/core/src/com/icesoft/faces/renderkit/dom_html_basic/RadioRenderer.java

        Well, the canadians will probably know more once they get some sunshine...

        Show
        Nicklas Karlsson added a comment - There is a checkin that looks suspicious: 15353 Fix for ICE-2488 (Component Showcase: Stacking panel does not remember selections) [less] adnan.durrani 12/11/07 1:30 PM that touches Modified /icefaces/trunk/icefaces/core/src/com/icesoft/faces/renderkit/dom_html_basic/RadioRenderer.java Well, the canadians will probably know more once they get some sunshine...
        Hide
        Mark Collette added a comment -

        Thanks to our wonderful, and persistent, open source community, I've duplicated the problem by setting layout="pageDirection".

        Show
        Mark Collette added a comment - Thanks to our wonderful, and persistent, open source community, I've duplicated the problem by setting layout="pageDirection".
        Hide
        Mark Collette added a comment -

        When the selectOneRadio had layout="pageDirection", the code was creating a <fieldset> and a <table> with the partialSubmit handler, but rendered the <tr> and <input> tags outside of them, into the parent panelGrid's <table>. This effectively broke partialSubmit for that component's configuration.

        Subversion 15768
        icefaces\core\src\com\icesoft\faces\renderkit\dom_html_basic\RadioRenderer.java
        icefaces\core\src\com\icesoft\faces\renderkit\dom_html_basic\SelectManyCheckboxListRenderer.java

        Show
        Mark Collette added a comment - When the selectOneRadio had layout="pageDirection", the code was creating a <fieldset> and a <table> with the partialSubmit handler, but rendered the <tr> and <input> tags outside of them, into the parent panelGrid's <table>. This effectively broke partialSubmit for that component's configuration. Subversion 15768 icefaces\core\src\com\icesoft\faces\renderkit\dom_html_basic\RadioRenderer.java icefaces\core\src\com\icesoft\faces\renderkit\dom_html_basic\SelectManyCheckboxListRenderer.java
        Hide
        Sam Xiao added a comment -

        fix confirmed for 1.7 beta 1 build 10

        Show
        Sam Xiao added a comment - fix confirmed for 1.7 beta 1 build 10

          People

          • Assignee:
            Unassigned
            Reporter:
            Nicklas Karlsson
          • Votes:
            3 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: