You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by st...@apache.org on 2016/04/06 22:42:56 UTC

[2/6] incubator-johnzon git commit: JOHNZON-71 move array logic to MappingParser

JOHNZON-71 move array logic to MappingParser


Project: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/commit/d7f4a866
Tree: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/tree/d7f4a866
Diff: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/diff/d7f4a866

Branch: refs/heads/master
Commit: d7f4a866ee38d754aaa5c6a426a2be5dec90b264
Parents: 253d6fa
Author: Reinhard Sandtner <rs...@apache.org>
Authored: Tue Apr 5 23:52:40 2016 +0200
Committer: Reinhard Sandtner <rs...@apache.org>
Committed: Tue Apr 5 23:52:40 2016 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/johnzon/mapper/Mapper.java   | 10 +---------
 .../java/org/apache/johnzon/mapper/MappingParserImpl.java |  4 ++++
 2 files changed, 5 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/d7f4a866/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
index fa9bfd2..917aee5 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
@@ -366,15 +366,7 @@ public class Mapper implements Closeable {
     }
 
     private Object mapArray(final Class<?> clazz, final JsonReader reader) {
-        try {
-            return buildArrayWithComponentType(reader.readArray(), clazz, null);
-        } catch (final Exception e) {
-            throw new MapperException(e);
-        } finally {
-            if (config.isClose()) {
-                reader.close();
-            }
-        }
+        return mapObject(Array.newInstance(clazz, 0).getClass(), reader);
     }
 
     private Object buildObject(final Type inType, final JsonObject object) throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/d7f4a866/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
index 3c455a6..140d203 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingParserImpl.java
@@ -133,6 +133,10 @@ public class MappingParserImpl implements MappingParser {
                 return (T) number.bigIntegerValue();
             }
         }
+        if (JsonArray.class.isInstance(jsonValue) && Class.class.isInstance(targetType) && ((Class) targetType).isArray()) {
+            return (T) buildArrayWithComponentType((JsonArray) jsonValue, ((Class) targetType).getComponentType(), null);
+
+        }
         if (JsonValue.NULL == jsonValue) {
             return null;
         }