[jboss-cvs] JBossAS SVN: r77014 - projects/jboss-reflect/trunk/src/main/org/jboss/reflect/plugins/introspection.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 13 11:21:39 EDT 2008
Author: adrian at jboss.org
Date: 2008-08-13 11:21:39 -0400 (Wed, 13 Aug 2008)
New Revision: 77014
Modified:
projects/jboss-reflect/trunk/src/main/org/jboss/reflect/plugins/introspection/ReflectionUtils.java
Log:
[JBREFLECT-33] - Optimize away NoSuchXXXException when searching for methods, etc. in super classes
Modified: projects/jboss-reflect/trunk/src/main/org/jboss/reflect/plugins/introspection/ReflectionUtils.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/org/jboss/reflect/plugins/introspection/ReflectionUtils.java 2008-08-13 15:10:24 UTC (rev 77013)
+++ projects/jboss-reflect/trunk/src/main/org/jboss/reflect/plugins/introspection/ReflectionUtils.java 2008-08-13 15:21:39 UTC (rev 77014)
@@ -227,13 +227,24 @@
if (clazz == null)
return null;
- try
+ Method[] methods = clazz.getDeclaredMethods();
+ if (methods.length != 0)
{
- return clazz.getDeclaredMethod(name, parameterTypes);
+ for (Method method : methods)
+ {
+ if (method.getName().equals(name))
+ {
+ Class<?>[] methodParams = method.getParameterTypes();
+ if (methodParams.length != 0)
+ {
+ if (Arrays.equals(methodParams, parameterTypes))
+ return method;
+ }
+ else if (parameterTypes == null || parameterTypes.length == 0)
+ return method;
+ }
+ }
}
- catch(Exception ignored)
- {
- }
return findMethod(clazz.getSuperclass(), name, parameterTypes);
}
@@ -268,13 +279,15 @@
if (clazz == null)
return null;
- try
+ Field[] fields = clazz.getDeclaredFields();
+ if (fields.length != 0)
{
- return clazz.getDeclaredField(name);
+ for (Field field : fields)
+ {
+ if (field.getName().equals(name))
+ return field;
+ }
}
- catch(Exception ignored)
- {
- }
return findField(clazz.getSuperclass(), name);
}
@@ -308,13 +321,21 @@
if (clazz == null)
return null;
- try
+ Constructor<?>[] constructors = clazz.getDeclaredConstructors();
+ if (constructors.length != 0)
{
- return clazz.getDeclaredConstructor(parameterTypes);
+ for (Constructor<?> constructor : constructors)
+ {
+ Class<?>[] constructorParams = constructor.getParameterTypes();
+ if (constructorParams.length != 0)
+ {
+ if (Arrays.equals(constructorParams, parameterTypes))
+ return constructor;
+ }
+ else if (parameterTypes == null || parameterTypes.length == 0)
+ return constructor;
+ }
}
- catch(Exception ignored)
- {
- }
return findConstructor(clazz.getSuperclass(), parameterTypes);
}
More information about the jboss-cvs-commits
mailing list