Details
- 
        Type: Bug Bug
- 
        Status: Closed
- 
            Priority: Major Major
- 
            Resolution: Invalid
- 
            Affects Version/s: 2.0-Beta2
- 
            Fix Version/s: None
- 
            Component/s: Framework
- 
            Labels:None
- 
            Environment:Found with Liferay 6.0 + PortletFaces-Bridge 2.0.0-BETA3 but it's not portlet related.
Description
                    I have a JSF 2 Facelet composite component wrapping ice:dataTable like this:
<my-comp:dataPaginator for=":myData" />
<ice:dataTable id="myData">
</ice:dataTable>
The colon in front of :myData indicates that the search should start from the root of the tree. Sadly, CoreComponentUtils.findComponent(UIComponent, String) is bailing out too early, not recursing through the component tree enough to find a matching clientId.
Here's a patch to fix:
===================================================================
--- /icefaces-src/2.0-trunk/icefaces/compat/core/src/main/java/com/icesoft/util/CoreComponentUtils.java (revision 23550)
+++ /icefaces-src/2.0-trunk/icefaces/compat/core/src/main/java/com/icesoft/util/CoreComponentUtils.java (working copy)
@@ -162,6 +162,12 @@
component = child;
break;
}
+ if (component == null) {
+ component = findComponent(child, componentId);
+ if (component != null) {
+ break;
+ }
+ }
}
return component;
}
            
<my-comp:dataPaginator for=":myData" />
<ice:dataTable id="myData">
</ice:dataTable>
The colon in front of :myData indicates that the search should start from the root of the tree. Sadly, CoreComponentUtils.findComponent(UIComponent, String) is bailing out too early, not recursing through the component tree enough to find a matching clientId.
Here's a patch to fix:
===================================================================
--- /icefaces-src/2.0-trunk/icefaces/compat/core/src/main/java/com/icesoft/util/CoreComponentUtils.java (revision 23550)
+++ /icefaces-src/2.0-trunk/icefaces/compat/core/src/main/java/com/icesoft/util/CoreComponentUtils.java (working copy)
@@ -162,6 +162,12 @@
component = child;
break;
}
+ if (component == null) {
+ component = findComponent(child, componentId);
+ if (component != null) {
+ break;
+ }
+ }
}
return component;
}
Issue Links
- depends on
- 
             ICE-6659
        ice:inputText required validation not happening properly inside portlet ICE-6659
        ice:inputText required validation not happening properly inside portlet-           
- Closed
 
-         
- 
             ICE-6667
        Portlets: CoreComponentUtils findComponent not absolutely finding components ICE-6667
        Portlets: CoreComponentUtils findComponent not absolutely finding components-           
- Closed
 
-         
- duplicates
- 
             ICE-6226
        Unable to use ice:dataPaginator compat component as a JSF 2.0 composite component ICE-6226
        Unable to use ice:dataPaginator compat component as a JSF 2.0 composite component-           
- Closed
 
-         
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Are those components within a form? Does the form have prependId=false?
            Show
            
                        
    
    
    
                
     Mark Collette
 added a comment  -                     Are those components within a form? Does the form have prependId=false?
 Mark Collette
 added a comment  -                     Are those components within a form? Does the form have prependId=false?              
        
    
Marking as Closed / Invalid as part of legacy ICEfaces 1.x, 2.x JIRA cleanup.
Note: This issue may be resolved in a newer ICEfaces release, available here: http://www.icesoft.org/java/downloads/icefaces-downloads.jsf
If the issue persists with the current ICEfaces release, please create a new JIRA for it.