[cp-patches] [PATCH] Fix java.lang.Class field and method API for null names

Pekka Enberg penberg at kernel.org
Sun Dec 12 11:46:28 UTC 2010


This patch fixes Class getDeclaredField, getDeclaredMethod, getField, and
getMethod API to throw NullPointerException if given name is "null".

Signed-off-by: Pekka Enberg <penberg at kernel.org>
---
 java/lang/Class.java |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/java/lang/Class.java b/java/lang/Class.java
index 1caee01..af0a0a2 100644
--- a/java/lang/Class.java
+++ b/java/lang/Class.java
@@ -440,11 +440,14 @@ public final class Class<T>
    * @return the field
    * @throws NoSuchFieldException if the field does not exist
    * @throws SecurityException if the security check fails
+   * @throws NullPointerException if <code>fieldName</code> is null
    * @see #getDeclaredFields()
    * @since 1.1
    */
   public Field getDeclaredField(String name) throws NoSuchFieldException
   {
+    if (name == null)
+      throw new NullPointerException();
     memberAccessCheck(Member.DECLARED);
     Field[] fields = getDeclaredFields(false);
     for (int i = 0; i < fields.length; i++)
@@ -496,12 +499,15 @@ public final class Class<T>
    * @return the method
    * @throws NoSuchMethodException if the method does not exist
    * @throws SecurityException if the security check fails
+   * @throws NullPointerException if <code>methodName</code> is null
    * @see #getDeclaredMethods()
    * @since 1.1
    */
   public Method getDeclaredMethod(String methodName, Class<?>... types)
     throws NoSuchMethodException
   {
+    if (methodName == null)
+      throw new NullPointerException();
     memberAccessCheck(Member.DECLARED);
     Method match = matchMethod(getDeclaredMethods(false), methodName, types);
     if (match == null)
@@ -560,12 +566,15 @@ public final class Class<T>
    * @return the field
    * @throws NoSuchFieldException if the field does not exist
    * @throws SecurityException if the security check fails
+   * @throws NullPointerException if <code>fieldName</code> is null
    * @see #getFields()
    * @since 1.1
    */
   public Field getField(String fieldName)
     throws NoSuchFieldException
   {
+    if (fieldName == null)
+      throw new NullPointerException();
     memberAccessCheck(Member.PUBLIC);
     Field field = internalGetField(fieldName);
     if (field == null)
@@ -700,12 +709,15 @@ public final class Class<T>
    * @return the method
    * @throws NoSuchMethodException if the method does not exist
    * @throws SecurityException if the security check fails
+   * @throws NullPointerException if <code>methodName</code> is null
    * @see #getMethods()
    * @since 1.1
    */
   public Method getMethod(String methodName, Class<?>... types)
     throws NoSuchMethodException
   {
+    if (methodName == null)
+      throw new NullPointerException();
     memberAccessCheck(Member.PUBLIC);
     Method method = internalGetMethod(methodName, types);
     if (method == null)
-- 
1.7.0.4




More information about the Classpath-patches mailing list