You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ms...@apache.org on 2011/05/27 20:09:29 UTC

svn commit: r1128413 - in /myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main: java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts

Author: mstarets
Date: Fri May 27 18:09:29 2011
New Revision: 1128413

URL: http://svn.apache.org/viewvc?rev=1128413&view=rev
Log:
TRINIDAD-2106 - RowkeySetAttributeChange should handle gracefully when the RowKeySet object it is remembering could be in invalid state. Thanks, Prakash Udupa for the patch!

Modified:
    myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java
    myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts

Modified: myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java?rev=1128413&r1=1128412&r2=1128413&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java (original)
+++ myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/change/RowKeySetAttributeChange.java Fri May 27 18:09:29 2011
@@ -9,6 +9,7 @@ import javax.faces.component.UIComponent
 import javax.faces.context.FacesContext;
 import javax.faces.el.ValueBinding;
 
+import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.model.RowKeySet;
 
 /**
@@ -74,6 +75,17 @@ public final class RowKeySetAttributeCha
 
   private void _updateRowKeySetInPlace(UIComponent component, String attrName, RowKeySet newValue)
   {
+    // Check whether the remembered RowKeySet object is in a valid state (iterable).
+    try
+    {
+      newValue.iterator().hasNext();
+    }
+    catch (Exception e)
+    {
+      _LOG.warning("FAILED_ROWKEYSETATTRIBUTECHANGE", e.getClass());
+      return;
+    }
+
     ValueExpression oldExpression = component.getValueExpression(attrName);
     
     // due to bug in how the trinidad table and tree handle their RowKeySets, always use
@@ -147,6 +159,6 @@ public final class RowKeySetAttributeCha
   }
 
   private static final long serialVersionUID = 1L;
-  
+  static private final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(RowKeySetAttributeChange.class);
   private final String _clientId;
 }

Modified: myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts?rev=1128413&r1=1128412&r2=1128413&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts (original)
+++ myfaces/trinidad/branches/1.2.12.5.1-branch/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts Fri May 27 18:09:29 2011
@@ -39,6 +39,9 @@
 <!-- CONVERSION_CLASS_TYPE -->
 <resource key="CONVERSION_CLASS_TYPE">Conversion class: {0} not of type {1}</resource>
 
+<!-- FAILED_ROWKEYSETATTRIBUTECHANGE -->
+<resource key="FAILED_ROWKEYSETATTRIBUTECHANGE">Failed to apply row key set attribute change. Reason : {1}</resource>
+
 <!-- UNABLE_INSTANTIATE_CONVERTERCLASS -->
 <resource key="UNABLE_INSTANTIATE_CONVERTERCLASS">Unable to instantiate converterClass: {0}</resource>