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 2008/06/25 03:05:02 UTC

svn commit: r671389 - in /myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces: component/html/ext/HtmlDataTableHack.java custom/datalist/AbstractHtmlDataList.java

Author: lu4242
Date: Tue Jun 24 18:05:02 2008
New Revision: 671389

URL: http://svn.apache.org/viewvc?rev=671389&view=rev
Log:
TOMAHAWK-1225 data lost in dataList when conversion error is thrown

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datalist/AbstractHtmlDataList.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java?rev=671389&r1=671388&r2=671389&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTableHack.java Tue Jun 24 18:05:02 2008
@@ -144,6 +144,21 @@
             _isValidChilds = false;
         }
     }
+    
+    /**
+     * This method is used when a custom processUpdates and processValidators
+     * is defined, to check if a update model error forces the render 
+     * response for our data, because _isValidChilds is a private field
+     * and is not available on child components that inherits this 
+     * component class like t:dataList. (TOMAHAWK-1225)
+     */
+    protected void checkUpdateModelError(FacesContext context)
+    {
+        if (context.getRenderResponse())
+        {
+            _isValidChilds = false;
+        }        
+    }
 
     /**
      * @see javax.faces.component.UIData#processValidators(javax.faces.context.FacesContext)

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datalist/AbstractHtmlDataList.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datalist/AbstractHtmlDataList.java?rev=671389&r1=671388&r2=671389&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datalist/AbstractHtmlDataList.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datalist/AbstractHtmlDataList.java Tue Jun 24 18:05:02 2008
@@ -72,6 +72,15 @@
         setRowIndex(-1);
         processChildren(context, PROCESS_DECODES);
         setRowIndex(-1);
+        try
+        {
+            decode(context);
+        }
+        catch (RuntimeException e)
+        {
+            context.renderResponse();
+            throw e;
+        }        
     }
 
     public void processUpdates(FacesContext context)
@@ -84,6 +93,7 @@
         setRowIndex(-1);
         processChildren(context, PROCESS_UPDATES);
         setRowIndex(-1);
+        checkUpdateModelError(context);
     }
 
     public void processValidators(FacesContext context)
@@ -95,7 +105,9 @@
 
         setRowIndex(-1);
         processChildren(context, PROCESS_VALIDATORS);
-        setRowIndex(-1);    }
+        setRowIndex(-1);
+        checkUpdateModelError(context);        
+    }
 
     /**
      * Iterates over all children, processes each according to the specified