You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/01/18 05:35:17 UTC
svn commit: r900278 - in /myfaces/core/trunk/api/src:
main/java/javax/faces/component/UIComponent.java
test/java/javax/faces/component/UIDataTest.java
Author: lu4242
Date: Mon Jan 18 04:35:17 2010
New Revision: 900278
URL: http://svn.apache.org/viewvc?rev=900278&view=rev
Log:
MYFACES-2475 Visit facets in UIComponent.visitTree() (Thanks to Michael Kurz for this patch)
Modified:
myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponent.java
myfaces/core/trunk/api/src/test/java/javax/faces/component/UIDataTest.java
Modified: myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponent.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponent.java?rev=900278&r1=900277&r2=900278&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponent.java (original)
+++ myfaces/core/trunk/api/src/main/java/javax/faces/component/UIComponent.java Mon Jan 18 04:35:17 2010
@@ -743,29 +743,33 @@
try {
VisitResult res = context.invokeVisitCallback(this, callback);
switch (res) {
- //we are done nothing has to be processed anymore
- case COMPLETE:
- return true;
-
- case REJECT:
- return false;
-
- //accept
- default:
- boolean visitResult = false;
- List <UIComponent> children = getChildren();
- if(children == null || children.isEmpty()) {
- return visitResult;
+ //we are done nothing has to be processed anymore
+ case COMPLETE:
+ return true;
+
+ case REJECT:
+ return false;
+
+ //accept
+ default:
+ if (getFacetCount() > 0) {
+ for (UIComponent facet : getFacets().values()) {
+ if (facet.visitTree(context, callback)) {
+ return true;
+ }
}
- for (UIComponent child : children) {
- visitResult = child.visitTree(context, callback);
- if (visitResult) {
- return visitResult;
+ }
+ if (getChildCount() > 0) {
+ for (UIComponent child : getChildren()) {
+ if (child.visitTree(context, callback)) {
+ return true;
}
}
- return visitResult;
+ }
+ return false;
}
- } finally {
+ }
+ finally {
//all components must call popComponentFromEl after visiting is finished
popComponentFromEL(context.getFacesContext());
}
Modified: myfaces/core/trunk/api/src/test/java/javax/faces/component/UIDataTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/test/java/javax/faces/component/UIDataTest.java?rev=900278&r1=900277&r2=900278&view=diff
==============================================================================
--- myfaces/core/trunk/api/src/test/java/javax/faces/component/UIDataTest.java (original)
+++ myfaces/core/trunk/api/src/test/java/javax/faces/component/UIDataTest.java Mon Jan 18 04:35:17 2010
@@ -416,6 +416,8 @@
EasyMock.expect(visitContextMock.invokeVisitCallback(headerFacet, callback)).andReturn(VisitResult.ACCEPT);
EasyMock.expect(visitContextMock.invokeVisitCallback(footerFacet, callback)).andReturn(VisitResult.ACCEPT);
EasyMock.expect(visitContextMock.invokeVisitCallback(facetOfChild1, callback)).andReturn(VisitResult.ACCEPT);
+ // HACK: Expected twice because of MYFACES-2475
+ EasyMock.expect(visitContextMock.invokeVisitCallback(facetOfChild1, callback)).andReturn(VisitResult.ACCEPT);
EasyMock.expect(visitContextMock.invokeVisitCallback(child1, callback)).andReturn(VisitResult.ACCEPT);
EasyMock.expect(visitContextMock.invokeVisitCallback(childOfChild1, callback)).andReturn(VisitResult.ACCEPT).times(3);
control.replay();