You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2007/11/05 15:38:18 UTC

svn commit: r592018 - /myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java

Author: manolito
Date: Mon Nov  5 06:38:17 2007
New Revision: 592018

URL: http://svn.apache.org/viewvc?rev=592018&view=rev
Log:
MYFACES-1758

Modified:
    myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java

Modified: myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java?rev=592018&r1=592017&r2=592018&view=diff
==============================================================================
--- myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java (original)
+++ myfaces/shared/branches/3_0_1/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java Mon Nov  5 06:38:17 2007
@@ -263,7 +263,21 @@
                 }
             }
 
-            Object value = ((ValueHolder)component).getValue();
+            Object value;
+
+            if(component instanceof EditableValueHolder) {
+
+                EditableValueHolder holder = (EditableValueHolder) component;
+                
+                if(holder.isLocalValueSet()) {
+                    value = holder.getLocalValue();
+                } else {
+                    value = getValue(component);
+                }
+            }
+            else {
+                value = getValue(component);
+            }
 
             Converter converter = ((ValueHolder)component).getConverter();
             if (converter == null  && value != null)
@@ -304,6 +318,20 @@
 
             throw ex;
         }
+    }
+
+    private static Object getValue(UIComponent component) {
+        Object value;
+        try
+        {
+            value = ((ValueHolder) component).getValue();
+        }
+        catch(Exception ex)
+        {
+            throw new FacesException("Could not retrieve value of component with path : "+
+                    getPathToComponent(component),ex);
+        }
+        return value;
     }
 
     /**