You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/12/23 09:24:52 UTC

svn commit: r358768 - in /myfaces: impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java

Author: mmarinschek
Date: Fri Dec 23 00:24:41 2005
New Revision: 358768

URL: http://svn.apache.org/viewcvs?rev=358768&view=rev
Log:
patch for myfaces-889. Thanks to Dennis Byrne, another excellent patch!

Modified:
    myfaces/impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java
    myfaces/share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java

Modified: myfaces/impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java
URL: http://svn.apache.org/viewcvs/myfaces/impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java?rev=358768&r1=358767&r2=358768&view=diff
==============================================================================
--- myfaces/impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java (original)
+++ myfaces/impl/trunk/src/java/org/apache/myfaces/config/ManagedBeanBuilder.java Fri Dec 23 00:24:41 2005
@@ -17,6 +17,7 @@
 
 import org.apache.myfaces.config.element.*;
 import org.apache.myfaces.util.ClassUtils;
+import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -111,8 +112,15 @@
             switch (property.getType())
             {
                 case ManagedProperty.TYPE_LIST:
-                    value = propertyResolver.getValue(bean, property.getPropertyName());
-
+                	
+                	// JSF 1.1, 5.3.1.3 
+                	// Call the property getter, if it exists.
+                	// If the getter returns null or doesn't exist, create a java.util.ArrayList,
+                	// otherwise use the returned Object ...
+                	if(PropertyUtils.isReadable(bean, property.getPropertyName()))
+                		value = propertyResolver.getValue(bean, property.getPropertyName());
+                	value = value == null ? new ArrayList() : value;
+                	
                     if (value instanceof List) {
                         initializeList(facesContext, property.getListEntries(), (List) value);
 
@@ -137,8 +145,14 @@
                     break;
                 case ManagedProperty.TYPE_MAP:
 
-                    value = propertyResolver.getValue(bean, property.getPropertyName());
-
+                	// JSF 1.1, 5.3.1.3 
+                	// Call the property getter, if it exists.
+                	// If the getter returns null or doesn't exist, create a java.util.HashMap,
+                	// otherwise use the returned java.util.Map .
+                	if(PropertyUtils.isReadable(bean, property.getPropertyName()))
+                		value = propertyResolver.getValue(bean, property.getPropertyName());
+                	value = value == null ? new HashMap() : value;
+                	
                     if (! (value instanceof Map)) {
                         value = new HashMap();
                     }

Modified: myfaces/share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java?rev=358768&r1=358767&r2=358768&view=diff
==============================================================================
--- myfaces/share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java (original)
+++ myfaces/share/trunk/src/test/org/apache/myfaces/test/DummyFacesContext.java Fri Dec 23 00:24:41 2005
@@ -29,9 +29,16 @@
 
 public class DummyFacesContext extends FacesContext {
 
+	private Application application;
+	
+	public DummyFacesContext(){	}
+	
+	public DummyFacesContext(Application application){
+		this.application = application;
+	}
+	
     public Application getApplication() {
-        // TODO Auto-generated method stub
-        return null;
+        return application;
     }
 
     public Iterator getClientIdsWithMessages() {
@@ -124,4 +131,4 @@
         
     }
     
-}
\ No newline at end of file
+}