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);
}
/**