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/25 09:14:34 UTC

svn commit: r396796 - in /incubator/harmony/enhanced/classlib/trunk/modules/beans/src: main/java/java/beans/PropertyEditorManager.java test/java/tests/api/java/beans/PropertyEditorManagerTest.java

Author: mloenko
Date: Tue Apr 25 00:14:33 2006
New Revision: 396796

URL: http://svn.apache.org/viewcvs?rev=396796&view=rev
Log:
fixes for HARMONY-258
java.beans.PropertyEditorManager.findEditor/registerEditor should throw NullPointerExceptions

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyEditorManager.java
    incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/tests/api/java/beans/PropertyEditorManagerTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyEditorManager.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyEditorManager.java?rev=396796&r1=396795&r2=396796&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyEditorManager.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/PropertyEditorManager.java Tue Apr 25 00:14:33 2006
@@ -41,16 +41,18 @@
      * @com.intel.drl.spec_ref
      */
     public static void registerEditor(Class targetType, Class editorClass) {
-        if (targetType != null) {
-            SecurityManager sm = System.getSecurityManager();
-            if (sm != null) {
-                sm.checkPropertiesAccess();
-            }
-            if (editorClass != null) {
-                registeredEditors.put(targetType, editorClass);
-            } else {
-                registeredEditors.remove(targetType);
-            }
+        if (targetType == null) {
+            throw new NullPointerException();
+        }
+
+        SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            sm.checkPropertiesAccess();
+        }
+        if (editorClass != null) {
+            registeredEditors.put(targetType, editorClass);
+        } else {
+            registeredEditors.remove(targetType);
         }
     }
 
@@ -58,55 +60,54 @@
      * @com.intel.drl.spec_ref
      */
     public static synchronized PropertyEditor findEditor(Class targetType) {
+        if (targetType == null) {
+            throw new NullPointerException();
+        }
+
         Class editorClass = null;
         PropertyEditor editor = null;
-        
-        if (targetType != null) {
-            editorClass = (Class) registeredEditors.get(targetType);
-            
-            if (editorClass == null) {
-                String editorClassName = targetType.getName() + "Editor";
-                ClassLoader loader = targetType.getClassLoader();
-
-				if (loader == null) {
-					loader = Thread.currentThread().getContextClassLoader();
-				}
-
-				try {
-					editorClass = Class.forName(editorClassName, true, loader);
-                } catch (ClassNotFoundException cnfe) {
-                    String shortEditorClassName = editorClassName.substring(
-                        editorClassName.lastIndexOf(".") + 1);
-                    
-                    if(targetType.isPrimitive()) {
-                        shortEditorClassName =
-                            shortEditorClassName.substring(0,1).toUpperCase()
+
+        editorClass = (Class) registeredEditors.get(targetType);
+
+        if (editorClass == null) {
+            String editorClassName = targetType.getName() + "Editor";
+            ClassLoader loader = targetType.getClassLoader();
+
+            if (loader == null) {
+                loader = Thread.currentThread().getContextClassLoader();
+            }
+
+            try {
+                editorClass = Class.forName(editorClassName, true, loader);
+            } catch (ClassNotFoundException cnfe) {
+                String shortEditorClassName = editorClassName
+                        .substring(editorClassName.lastIndexOf(".") + 1);
+
+                if (targetType.isPrimitive()) {
+                    shortEditorClassName = shortEditorClassName.substring(0, 1)
+                            .toUpperCase()
                             + shortEditorClassName.substring(1);
-                    }
-                    
-                    for (int i = 0; i < path.length; ++i) {
-                        editorClassName = path[i] + "." + shortEditorClassName;
-                        
-                        try {
-                            editorClass = Class.forName(editorClassName, true,
-                                    loader);
-                        } catch (ClassNotFoundException cnfe2) {
-                        } catch (Exception e) {
-                            break;
-                        }
-                    }
-                } catch (Exception e) {
                 }
-            }
-                
-            if (editorClass != null) {
-                try {
-                    editor = (PropertyEditor) editorClass.newInstance();
-                } catch (Exception e) {
+
+                for (int i = 0; i < path.length; ++i) {
+                    editorClassName = path[i] + "." + shortEditorClassName;
+
+                    try {
+                        editorClass = Class.forName(editorClassName, true,
+                                loader);
+                    } catch (ClassNotFoundException cnfe2) {} catch (Exception e) {
+                        break;
+                    }
                 }
-            }
-            
+            } catch (Exception e) {}
         }
+
+        if (editorClass != null) {
+            try {
+                editor = (PropertyEditor) editorClass.newInstance();
+            } catch (Exception e) {}
+        }
+
         return editor;
     }
 

Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/tests/api/java/beans/PropertyEditorManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/tests/api/java/beans/PropertyEditorManagerTest.java?rev=396796&r1=396795&r2=396796&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/tests/api/java/beans/PropertyEditorManagerTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/tests/api/java/beans/PropertyEditorManagerTest.java Tue Apr 25 00:14:33 2006
@@ -87,9 +87,10 @@
 		PropertyEditor editor = PropertyEditorManager.findEditor(Integer.TYPE);
 	}
 
+    //Regression test for HARMONY-258
 	public void testFindEditor_TypeNull() {
 		try {
-			PropertyEditor editor = PropertyEditorManager.findEditor(null);
+			PropertyEditorManager.findEditor(null);
 			fail("Should throw NullPointerException.");
 		} catch (NullPointerException e) {
 			// expected
@@ -141,6 +142,7 @@
 
 	/*
 	 * registerEditor for type null
+     * Regression test for HARMONY-258
 	 */
 	public void testRegisterEditorType_Null() {
 		try {