code: private MBeanParameterInfo[] getMatchingSignature(List<String> pTypes, List<MBeanParameterInfo[]> pParamInfos) {
          OUTER:
          for (MBeanParameterInfo[]  infos : pParamInfos) {
              if (infos.length == 0 && pTypes.size() == 0) {
                  // No-arg argument
                  return infos;
              }
              if (pTypes.size() != infos.length) {
                  // Number of arguments dont match
                  continue OUTER;
              }
              for (int i=0;i<infos.length;i++) {
                  String type = infos[i].getType();
                  if (!type.equals(pTypes.get(i))) {
                      // Non-matching signature
                      continue OUTER;
                  }
              }
              // If we did it until here, we are finished.
              return infos;
          }
          return null;
      }
docs: Check whether a matching signature exists from a list of MBean parameter infos. The match is done against a list of types
  (in string form) which was extracted from the request
  
  @param pTypes types to match agains. These are full qualified class names in string representation
  @param pParamInfos list of parameter infos
  @return the matched signature MBeanParamaterInfo[]