Author: markt Date: Mon Mar 18 13:10:33 2013 New Revision: 1457749 URL: http://svn.apache.org/r1457749 Log: Enable support for overloaded methods
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1457748 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java?rev=1457749&r1=1457748&r2=1457749&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java Mon Mar 18 13:10:33 2013 @@ -291,7 +291,7 @@ public class ManagedBean implements java * @param operation The new operation descriptor */ public void addOperation(OperationInfo operation) { - operations.put(operation.getName(), operation); + operations.put(createOperationKey(operation), operation); } @@ -581,7 +581,8 @@ public class ManagedBean implements java // Acquire the ModelMBeanOperationInfo information for // the requested operation - OperationInfo opInfo = operations.get(aname); + OperationInfo opInfo = + operations.get(createOperationKey(aname, signature)); if (opInfo == null) throw new MBeanException(new ServiceNotFoundException( "Cannot find operation " + aname), @@ -622,4 +623,31 @@ public class ManagedBean implements java } + private String createOperationKey(OperationInfo operation) { + StringBuilder key = new StringBuilder(operation.getName()); + key.append('('); + for (ParameterInfo parameterInfo: operation.getSignature()) { + key.append(parameterInfo.getType()); + // Note: A trailing ',' does not matter in this case + key.append(','); + } + key.append(')'); + + return key.toString(); + } + + + private String createOperationKey(String methodName, + String[] parameterTypes) { + StringBuilder key = new StringBuilder(methodName); + key.append('('); + for (String parameter: parameterTypes) { + key.append(parameter); + // Note: A trailing ',' does not matter in this case + key.append(','); + } + key.append(')'); + + return key.toString(); + } } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1457749&r1=1457748&r2=1457749&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Mar 18 13:10:33 2013 @@ -92,6 +92,10 @@ headers to allow for buggy clients that quote values that RFC2617 states should not be quoted. (markt/kkolinko) </fix> + <fix> + Enable support for MBeans with multiple operations with the same name + but different signatures. (markt) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org