From 16af522deffdb1535998203f48e602e94f36cc38 Mon Sep 17 00:00:00 2001 From: Mark Hellkamp Date: Fri, 7 Sep 2012 14:37:34 -0700 Subject: [PATCH 1/2] Fixed issue with deserializing collections and sets. --- .../data/rest/webmvc/json/RepositoryAwareJacksonModule.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java index a184961fb..8a7f97a3f 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java @@ -282,6 +282,8 @@ public class RepositoryAwareJacksonModule extends SimpleModule implements Initia } if((tok = jp.nextToken()) == JsonToken.START_ARRAY) { + // advance past the start_array token + jp.nextToken(); do { Object cval = jp.readValueAs(attrMeta.elementType()); c.add(cval); @@ -301,6 +303,8 @@ public class RepositoryAwareJacksonModule extends SimpleModule implements Initia } if((tok = jp.nextToken()) == JsonToken.START_ARRAY) { + // advance past the start_array token + jp.nextToken(); do { Object sval = jp.readValueAs(attrMeta.elementType()); s.add(sval); From 8c24c641b47b00a2c11fd95003153d622929e115 Mon Sep 17 00:00:00 2001 From: Mark Hellkamp Date: Fri, 7 Sep 2012 15:03:42 -0700 Subject: [PATCH 2/2] Fixed issue with deserializing empty collections and sets. --- .../webmvc/json/RepositoryAwareJacksonModule.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java index 8a7f97a3f..a231d92b3 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/RepositoryAwareJacksonModule.java @@ -282,12 +282,10 @@ public class RepositoryAwareJacksonModule extends SimpleModule implements Initia } if((tok = jp.nextToken()) == JsonToken.START_ARRAY) { - // advance past the start_array token - jp.nextToken(); - do { + while((tok = jp.nextToken()) != JsonToken.END_ARRAY) { Object cval = jp.readValueAs(attrMeta.elementType()); c.add(cval); - } while((tok = jp.nextToken()) != JsonToken.END_ARRAY); + } val = c; @@ -303,12 +301,10 @@ public class RepositoryAwareJacksonModule extends SimpleModule implements Initia } if((tok = jp.nextToken()) == JsonToken.START_ARRAY) { - // advance past the start_array token - jp.nextToken(); - do { + while((tok = jp.nextToken()) != JsonToken.END_ARRAY) { Object sval = jp.readValueAs(attrMeta.elementType()); s.add(sval); - } while((tok = jp.nextToken()) != JsonToken.END_ARRAY); + } val = s;