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
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion