You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/04/18 08:27:36 UTC

svn commit: r394857 - in /incubator/harmony/enhanced/classlib/trunk/modules/beans/src: main/java/java/beans/Beans.java test/java/org/apache/harmony/tests/java/beans/BeansTest.java

Author: mloenko
Date: Mon Apr 17 23:27:33 2006
New Revision: 394857

URL: http://svn.apache.org/viewcvs?rev=394857&view=rev
Log:
fix for HARMONY-358:
java.beans.Beans.instantiate(ClassLoader cls, String name) throws ClassNotFoundException if cls == null
and regression test

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java
    incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/tests/java/beans/BeansTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java?rev=394857&r1=394856&r2=394857&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java Mon Apr 17 23:27:33 2006
@@ -108,40 +108,41 @@
             }
         }
         
-        if(result == null) {
-            try {
-                Class c = Class.forName(beanName, true, cls);
-                
-                try {
-                    result = c.newInstance();
-                    
-                    if(result instanceof Applet) {
-                        Applet applet = (Applet) result;
-                        applet.init();
-                    }
-                } catch (IllegalAccessException iae) {
-                    throw new ClassNotFoundException(iae.getClass() + ": "
-                            + iae.getMessage());
-                }
-            } catch (InstantiationException ie) {
-                throw new ClassNotFoundException(ie.getClass() + ": "
-                        + ie.getMessage());
-            }
-        }
+        if (result == null) {
+			try {
+				Class c = Class.forName(beanName, true,
+						cls == null ? ClassLoader.getSystemClassLoader() : cls);
+
+				try {
+					result = c.newInstance();
+
+					if (result instanceof Applet) {
+						Applet applet = (Applet) result;
+						applet.init();
+					}
+				} catch (IllegalAccessException iae) {
+					throw new ClassNotFoundException(iae.getClass() + ": "
+							+ iae.getMessage());
+				}
+			} catch (InstantiationException ie) {
+				throw new ClassNotFoundException(ie.getClass() + ": "
+						+ ie.getMessage());
+			}
+		}
         
         return result;
     }
 
     /**
-     * @com.intel.drl.spec_ref
-     */
+	 * @com.intel.drl.spec_ref
+	 */
     public static Object getInstanceOf(Object bean, Class targetType) {
         return bean;            
     }
 
     /**
-     * @com.intel.drl.spec_ref
-     */
+	 * @com.intel.drl.spec_ref
+	 */
     public static boolean isInstanceOf(Object bean, Class targetType) {
         return bean.getClass().isAssignableFrom(targetType);            
     }

Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/tests/java/beans/BeansTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/tests/java/beans/BeansTest.java?rev=394857&r1=394856&r2=394857&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/tests/java/beans/BeansTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/tests/java/beans/BeansTest.java Mon Apr 17 23:27:33 2006
@@ -96,6 +96,16 @@
         }
     }
 
+    //regression test for HARMONY-358
+    public void testInstantiate() throws Exception {
+        try {
+            Class.forName(this.getClass().getName(), true, null);
+            fail("This test is designed to run from classpath rather then from bootclasspath");
+        } catch (ClassNotFoundException ok) {
+        }
+        assertNotNull(Beans.instantiate(null, this.getClass().getName()));
+    } 
+    
     /**
      * 
      */