Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Invalid
-
Affects Version/s: 3.0
-
Fix Version/s: 3.1
-
Component/s: Framework, ICE-Components
-
Labels:None
-
Environment:ICEfaces 3 ACE portal portlet Mojarra
-
Assignee Priority:P2
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration
-
Workaround Exists:Yes
-
Workaround Description:
Description
When trying to add the plain ace:tabset example as a portlet to a portal page, the following exception is thrown:
javax.faces.FacesException: <f:ajax> contains an unknown id 'A4076:j_idt449:_t451' - cannot locate it in the context of the component _t451
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getResolvedId(AjaxBehaviorRenderer.java:285)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.appendIds(AjaxBehaviorRenderer.java:272)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.buildAjaxCommand(AjaxBehaviorRenderer.java:212)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:86)
at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
at com.sun.faces.renderkit.RenderKitUtils.getSingleBehaviorHandler(RenderKitUtils.java:1610)
at com.sun.faces.renderkit.RenderKitUtils.renderHandler(RenderKitUtils.java:1703)
at com.sun.faces.renderkit.RenderKitUtils.renderSelectOnclick(RenderKitUtils.java:421)
at com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.renderOption(SelectManyCheckboxListRenderer.java:361)
at com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:180)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at org.icefaces.ace.util.Utils.renderChild(Utils.java:61)
at org.icefaces.ace.util.Utils.renderChildren(Utils.java:43)
at org.icefaces.ace.util.Utils.renderChild(Utils.java:59)
at org.icefaces.ace.component.tabset.TabSetRenderer.renderTabBody(TabSetRenderer.java:431)
at org.icefaces.ace.component.tabset.TabSetRenderer.doTab(TabSetRenderer.java:512)
at org.icefaces.ace.component.tabset.TabSetRenderer.doTabs(TabSetRenderer.java:452)
at org.icefaces.ace.component.tabset.TabSetRenderer.recursivelyRenderSafe(TabSetRenderer.java:323)
at org.icefaces.ace.component.tabset.TabSetRenderer.encodeEnd(TabSetRenderer.java:261)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.icefaces.ace.renderkit.CoreRenderer.renderChild(CoreRenderer.java:72)
at org.icefaces.ace.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:60)
at org.icefaces.ace.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:208)
at org.icefaces.ace.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:131)
at org.icefaces.ace.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:71)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:433)
Remove the f:ajax tag from the following markup allows the tabset to work normally so the issue is not the tabset component itself but the use of the f:ajax tag in the body of the tab pane:
<ace:tabSet id="sampleTabSet" clientSide="false">
<ace:tabPane label="To Do List">
<h:selectManyCheckbox layout="pageDirection" selectedClass="selectedCheckBox">
<f:selectItems value="#{tabSet.toDoList}"
var="listItem"
itemValue="#{listItem.value}"
itemLabel="#{listItem.key}"/>
//Remove -> <f:ajax execute="@this" render="sampleTabSet"/>
</h:selectManyCheckbox>
</ace:tabPane>
javax.faces.FacesException: <f:ajax> contains an unknown id 'A4076:j_idt449:_t451' - cannot locate it in the context of the component _t451
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getResolvedId(AjaxBehaviorRenderer.java:285)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.appendIds(AjaxBehaviorRenderer.java:272)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.buildAjaxCommand(AjaxBehaviorRenderer.java:212)
at com.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:86)
at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
at com.sun.faces.renderkit.RenderKitUtils.getSingleBehaviorHandler(RenderKitUtils.java:1610)
at com.sun.faces.renderkit.RenderKitUtils.renderHandler(RenderKitUtils.java:1703)
at com.sun.faces.renderkit.RenderKitUtils.renderSelectOnclick(RenderKitUtils.java:421)
at com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.renderOption(SelectManyCheckboxListRenderer.java:361)
at com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:180)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at org.icefaces.ace.util.Utils.renderChild(Utils.java:61)
at org.icefaces.ace.util.Utils.renderChildren(Utils.java:43)
at org.icefaces.ace.util.Utils.renderChild(Utils.java:59)
at org.icefaces.ace.component.tabset.TabSetRenderer.renderTabBody(TabSetRenderer.java:431)
at org.icefaces.ace.component.tabset.TabSetRenderer.doTab(TabSetRenderer.java:512)
at org.icefaces.ace.component.tabset.TabSetRenderer.doTabs(TabSetRenderer.java:452)
at org.icefaces.ace.component.tabset.TabSetRenderer.recursivelyRenderSafe(TabSetRenderer.java:323)
at org.icefaces.ace.component.tabset.TabSetRenderer.encodeEnd(TabSetRenderer.java:261)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.icefaces.ace.renderkit.CoreRenderer.renderChild(CoreRenderer.java:72)
at org.icefaces.ace.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:60)
at org.icefaces.ace.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:208)
at org.icefaces.ace.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:131)
at org.icefaces.ace.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:71)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:433)
Remove the f:ajax tag from the following markup allows the tabset to work normally so the issue is not the tabset component itself but the use of the f:ajax tag in the body of the tab pane:
<ace:tabSet id="sampleTabSet" clientSide="false">
<ace:tabPane label="To Do List">
<h:selectManyCheckbox layout="pageDirection" selectedClass="selectedCheckBox">
<f:selectItems value="#{tabSet.toDoList}"
var="listItem"
itemValue="#{listItem.value}"
itemLabel="#{listItem.key}"/>
//Remove -> <f:ajax execute="@this" render="sampleTabSet"/>
</h:selectManyCheckbox>
</ace:tabPane>
Issue Links
- depends on
-
ICE-7909 Allow ace:ajax to work with all h: components, not just ACE components
- Closed
Activity
Deryk Sinotte
created issue -
Deryk Sinotte
made changes -
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [] | |
Assignee Priority | P1 | |
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Deryk Sinotte
made changes -
Workaround Description | Do not use f:ajax tag | Do not use f:ajax tag with Mojarra or use MyFaces |
Environment | ICEfaces 3 ACE portal portlet | ICEfaces 3 ACE portal portlet Mojarra |
Salesforce Case | [] | |
Affects | [Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | EE-3.0.0.GA [ 10262 ] | |
Fix Version/s | 3.0 [ 10241 ] | |
Assignee Priority | P1 | P2 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #27503 | Mon Jan 30 12:33:37 MST 2012 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/tab/tabset.xhtml
|
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 3.0 [ 10241 ] | |
Fix Version/s | EE-3.0.0.GA [ 10262 ] | |
Assignee Priority | P2 | P1 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #27521 | Mon Jan 30 15:35:35 MST 2012 | ken.fyten | |
Files Changed | ||||
MODIFY
/icefaces3/tags/icefaces-3.0.0/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/tab/tabset.xhtml
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #27534 | Mon Jan 30 17:22:46 MST 2012 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/tab/tabset.xhtml
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #27535 | Mon Jan 30 17:26:15 MST 2012 | ken.fyten | |
Files Changed | ||||
MODIFY
/icefaces3/tags/icefaces-3.0.0/icefaces/samples/showcase/showcase/src/main/webapp/resources/examples/ace/tab/tabset.xhtml
|
Deryk Sinotte
made changes -
Salesforce Case | [] | |
Assignee | Deryk Sinotte [ deryk.sinotte ] | Ken Fyten [ ken.fyten ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 3.0.1 [ 10282 ] | |
Fix Version/s | 3.0 [ 10241 ] | |
Assignee Priority | P1 | P2 |
Assignee | Ken Fyten [ ken.fyten ] | Mark Collette [ mark.collette ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee Priority | P2 | P1 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #28310 | Tue Mar 13 23:06:52 MDT 2012 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/ajax/AjaxBehaviorRenderer.java
|
Mark Collette
made changes -
Summary | Use of the f:ajax tag in the ace:tabset example throws an exception in portlet | Use of the f:ajax tag in h:selectMany[Checkbox, Listbox] within 2+ naming containers throws an exception |
Workaround Description | Do not use f:ajax tag with Mojarra or use MyFaces |
Do not use f:ajax tag with Mojarra, or use MyFaces Instead of using f:ajax, manually add an onclick handler and make it call the submit function yourself After this jira's commits, use the ace:ajax tag instead of f:ajax |
Salesforce Case | [] |
Ken Fyten
made changes -
Summary | Use of the f:ajax tag in h:selectMany[Checkbox, Listbox] within 2+ naming containers throws an exception | Use of the f:ajax tag in h:selectMany[Checkbox, Listbox] within 2+ naming containers throws an exception |
Salesforce Case | [] | |
Fix Version/s | 3.1 [ 10312 ] | |
Fix Version/s | 3.0.1 [ 10282 ] | |
Assignee Priority | P1 | P2 |
Mark Collette
made changes -
Mark Collette
made changes -
Status | Open [ 1 ] | Closed [ 6 ] |
Resolution | Invalid [ 6 ] |
In the ace:accordionPanel example, we use a different technique - adding an onchange handler instead - and this doesn't have a problem:
<ace:accordion collapsible="true">
{accordionPanelBean.toDoList}<ace:accordionPane title="My To Do List">
<h:selectManyCheckbox layout="pageDirection" selectedClass="selectedCheckBox" onchange="submit();">
<f:selectItems value="#
"
{listItem.value}var="listItem"
itemValue="#
"
{listItem.key}itemLabel="#
"/>
</h:selectManyCheckbox>
</ace:accordionPane>
Using the same technique (and removing the f:ajax tag) in ace:tabSet also works.