You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2008/02/26 23:52:02 UTC

svn commit: r631414 - in /myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main: java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java java/org/apache/myfaces/trinidad/component/UIXCollection.java

Author: mcooper
Date: Tue Feb 26 14:51:53 2008
New Revision: 631414

URL: http://svn.apache.org/viewvc?rev=631414&view=rev
Log:
TRINIDAD-972 Fixed a case where nested iterators were not working because when their children are extracted via UIXComponent.processFlattenedChildren API, the underlying UIXCollection cache was not properly initialized or flushed since this route never invokes encodeBegin() from UIXCollection.

Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java
    myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java?rev=631414&r1=631413&r2=631414&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java-templates/org/apache/myfaces/trinidad/component/UIXIteratorTemplate.java Tue Feb 26 14:51:53 2008
@@ -66,6 +66,9 @@
     final ComponentProcessor<S> childProcessor,
     final S callbackContext) throws IOException
   {
+    // Mimic what would normally happen in the non-flattening case for encodeBegin():
+    __processFlattenedChildrenBegin();
+
     Runner runner = new Runner(cpContext)
     {
       @Override

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java?rev=631414&r1=631413&r2=631414&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXCollection.java Tue Feb 26 14:51:53 2008
@@ -1170,6 +1170,21 @@
     }
  }
 
+  /**
+   * Hook for subclasses like UIXIterator to initialize and flush the cache when visting flattened
+   * children when parented by a renderer that needs to use
+   * UIXComponent.processFlattenedChildren().
+   * This is to mimic what happens in the non flattening case where similar logic is invoked
+   * during encodeBegin().
+   */
+  void __processFlattenedChildrenBegin()
+  {
+    // Call _init() since _flushCachedModel() assumes that
+    // selectedRowKeys and disclosedRowKeys are initialized to be non-null.
+    _init();
+    _flushCachedModel();
+  }
+
   private void _init()
   {
     InternalState iState = _getInternalState(true);