diff --git a/src/main/java/org/codehaus/gmavenplus/util/ReflectionUtils.java b/src/main/java/org/codehaus/gmavenplus/util/ReflectionUtils.java index 8998e56e..915cc26b 100644 --- a/src/main/java/org/codehaus/gmavenplus/util/ReflectionUtils.java +++ b/src/main/java/org/codehaus/gmavenplus/util/ReflectionUtils.java @@ -48,7 +48,7 @@ public static Constructor findConstructor(final Class clazz, final Class clazz, final String name, final C } searchType = searchType.getSuperclass(); } - throw new IllegalArgumentException("Unable to find method " + clazz.getName() + "." + name + "(" + Arrays.toString(paramTypes).replaceAll("^\\[", "").replaceAll("]$", "").replaceAll("class ", "") + ")."); + throw new IllegalArgumentException("Unable to find method " + clazz.getName() + "." + name + "(" + formatParameterTypes(paramTypes) + ")."); } /** @@ -245,6 +245,30 @@ private static Method[] getDeclaredMethods(Class clazz) { return result; } + private static String formatParameterTypes(final Class[] paramTypes) { + if (paramTypes == null) { + return "null"; + } + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < paramTypes.length; i++) { + if (paramTypes[i] == null) { + sb.append("null"); + } else { + String s = paramTypes[i].toString(); + final String classPrefix = "class "; + if (s.startsWith(classPrefix)) { + sb.append(s.substring(classPrefix.length())); + } else { + sb.append(s); + } + } + if (i < paramTypes.length - 1) { + sb.append(", "); + } + } + return sb.toString(); + } + private static List findConcreteMethodsOnInterfaces(Class clazz) { List result = null; for (Class ifc : clazz.getInterfaces()) {