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:07 UTC

[deltaspike] branch master updated (2ae479e -> ab2fa0d)

This is an automated email from the ASF dual-hosted git repository.

struberg pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git.


    from 2ae479e  DELTASPIKE-1383 fixed formatting
     new 6f7de55  DELTASPIKE-1377 fix typeId evaluation
     new ab2fa0d  DELTASPIKE-1377 fix array handling for native types

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/deltaspike/core/util/Annotateds.java    | 58 +++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)


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

Posted by st...@apache.org.
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);
     }
 
     /**


[deltaspike] 01/02: DELTASPIKE-1377 fix typeId evaluation

Posted by st...@apache.org.
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 <vl...@mailprofiler.com>
AuthorDate: Mon Jul 15 12:22:52 2019 +0200

    DELTASPIKE-1377 fix typeId evaluation
    
    Signed-off-by: Mark Struberg <st...@apache.org>
---
 .../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)