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>