Details
-
Type: Bug
-
Status: Closed
-
Priority: 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
- Closed
-
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
- Closed
Are those components within a form? Does the form have prependId=false?