From af6275a56ee401d51697a1cdba1882a75ee8247c Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Thu, 6 Aug 2009 22:44:04 +0000 Subject: [PATCH] + small fix to reflection util to avoid accessibility calls --- .../java/org/springframework/util/ReflectionUtils.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java b/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java index 56fd187db28..d9a9d882cdd 100644 --- a/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java +++ b/org.springframework.core/src/main/java/org/springframework/util/ReflectionUtils.java @@ -423,7 +423,8 @@ public abstract class ReflectionUtils { * @see java.lang.reflect.Field#setAccessible */ public static void makeAccessible(Field field) { - if (!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers())) { + if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers())) + && !field.isAccessible()) { field.setAccessible(true); } } @@ -438,7 +439,8 @@ public abstract class ReflectionUtils { * @see java.lang.reflect.Method#setAccessible */ public static void makeAccessible(Method method) { - if (!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) { + if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) + && !method.isAccessible()) { method.setAccessible(true); } } @@ -453,7 +455,8 @@ public abstract class ReflectionUtils { * @see java.lang.reflect.Constructor#setAccessible */ public static void makeAccessible(Constructor ctor) { - if (!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) { + if ((!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) + && !ctor.isAccessible()) { ctor.setAccessible(true); } }