Author: markt
Date: Mon Mar 18 13:08:25 2013
New Revision: 1457748

URL: http://svn.apache.org/r1457748
Log:
Enable support for overloaded methods
Modified:
    tomcat/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java?rev=1457748&r1=1457747&r2=1457748&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/modeler/ManagedBean.java Mon Mar 
18 13:08:25 2013
@@ -270,7 +270,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);
     }
 
 
@@ -527,7 +527,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),
@@ -568,4 +569,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();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to