You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2019/07/16 10:58:09 UTC

[deltaspike] 02/02: DELTASPIKE-1377 fix array handling for native types

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 ab2fa0d1715084a364c666504ad4b4ea74a23cdc
Author: Mark Struberg <st...@apache.org>
AuthorDate: Tue Jul 16 12:56:40 2019 +0200

    DELTASPIKE-1377 fix array handling for native types
---
 .../apache/deltaspike/core/util/Annotateds.java    | 42 +++++++++++++++-------
 1 file changed, 30 insertions(+), 12 deletions(-)

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 23fc311..712573c 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
@@ -611,7 +611,7 @@ public final class Annotateds
                         }
                         else if (componentType instanceof Class<?>)
                         {
-                            builder.append(createClassArrayId((Class<?>[]) value));
+                            builder.append(createArrayId(value));
                         }
                         else
                         {
@@ -657,20 +657,38 @@ public final class Annotateds
     /**
      * Appends comma separated list of class names from classArray to builder
      */
-    private static String createClassArrayId(Class<?>[] classArray)
+    private static String createArrayId(Object value)
     {
-        StringBuilder builder = new StringBuilder();
-        builder.append('[');
-        for (int i = 0; i < classArray.length; i++)
+        if (value instanceof int[])
         {
-            builder.append(classArray[i].getName());
-            if (i + 1 != classArray.length)
-            {
-                builder.append(',');
-            }
+            return Arrays.toString((int[]) value);
         }
-        builder.append(']');
-        return builder.toString();
+        if (value instanceof short[])
+        {
+            return Arrays.toString((short[]) value);
+        }
+        if (value instanceof byte[])
+        {
+            return Arrays.toString((byte[]) value);
+        }
+        if (value instanceof char[])
+        {
+            return Arrays.toString((char[]) value);
+        }
+        if (value instanceof long[])
+        {
+            return Arrays.toString((long[]) value);
+        }
+        if (value instanceof float[])
+        {
+            return Arrays.toString((float[]) value);
+        }
+        if (value instanceof double[])
+        {
+            return Arrays.toString((double[]) value);
+        }
+
+        return Arrays.toString((Object[]) value);
     }
 
     /**