This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/deltaspike.git
commit 6f7de55890adb92fca49985380fe9dfb65e821f8 Author: Vladimir Dvorak <[email protected]> AuthorDate: Mon Jul 15 12:22:52 2019 +0200 DELTASPIKE-1377 fix typeId evaluation Signed-off-by: Mark Struberg <[email protected]> --- .../apache/deltaspike/core/util/Annotateds.java | 40 +++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/Annotateds.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/Annotateds.java index e8213cf..23fc311 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/Annotateds.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/Annotateds.java @@ -602,7 +602,26 @@ public final class Annotateds Object value = method.invoke(a); builder.append(method.getName()); builder.append('='); - builder.append(value.toString()); + if (value.getClass().isArray()) + { + Class<?> componentType = value.getClass().getComponentType(); + if (componentType.isAnnotation()) + { + builder.append(Arrays.asList((Object[]) value)); + } + else if (componentType instanceof Class<?>) + { + builder.append(createClassArrayId((Class<?>[]) value)); + } + else + { + builder.append(value.toString()); + } + } + else + { + builder.append(value.toString()); + } } catch (NullPointerException e) { @@ -636,6 +655,25 @@ public final class Annotateds } /** + * Appends comma separated list of class names from classArray to builder + */ + private static String createClassArrayId(Class<?>[] classArray) + { + StringBuilder builder = new StringBuilder(); + builder.append('['); + for (int i = 0; i < classArray.length; i++) + { + builder.append(classArray[i].getName()); + if (i + 1 != classArray.length) + { + builder.append(','); + } + } + builder.append(']'); + return builder.toString(); + } + + /** * Compares two annotated elements to see if they have the same annotations */ private static boolean compareAnnotated(Annotated a1, Annotated a2)
