Author: kkolinko Date: Wed May 30 01:30:58 2012 New Revision: 1344068 URL: http://svn.apache.org/viewvc?rev=1344068&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53322 Follow JavaBeans specification when converting setter method name into property name for resource injection.
Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1344068&r1=1344067&r2=1344068&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Wed May 30 01:30:58 2012 @@ -19,6 +19,7 @@ package org.apache.catalina.core; +import java.beans.Introspector; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; @@ -360,7 +361,7 @@ public class DefaultInstanceManager impl && methodName.length() > 3 && method.getParameterTypes().length == 1 && method.getReturnType().getName().equals("void")) { - String fieldName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4); + String fieldName = getName(method); if (injections.containsKey(fieldName)) { annotations.add(new AnnotationCacheEntry( method.getName(), @@ -661,15 +662,9 @@ public class DefaultInstanceManager impl } public static String getName(Method setter) { - StringBuilder name = new StringBuilder(setter.getName()); - - // remove 'set' - name.delete(0, 3); - - // lowercase first char - name.setCharAt(0, Character.toLowerCase(name.charAt(0))); - - return name.toString(); + // Note: method signature has already been checked for correctness. + // The method name always starts with "set". + return Introspector.decapitalize(setter.getName().substring(3)); } private static String normalize(String jndiName){ --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org