You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2014/01/16 15:46:36 UTC

svn commit: r1558819 - in /turbine/fulcrum/trunk/json/jackson2/src: java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java

Author: gk
Date: Thu Jan 16 14:46:36 2014
New Revision: 1558819

URL: http://svn.apache.org/r1558819
Log:
Checking for null without jumping out from method.
Added mixin deserializing test for collection

Modified:
    turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
    turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java

Modified: turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java?rev=1558819&r1=1558818&r2=1558819&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java (original)
+++ turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java Thu Jan 16 14:46:36 2014
@@ -124,13 +124,8 @@ public class Jackson2MapperService exten
 
     @Override
     public <T> String ser(Object src, Class<T> type) throws Exception {
-        if (src == null) {
-            getLogger().info("no serializable object:" + src + " for type "+ type);
-            return null;
-        } else {
-            getLogger().debug("ser class::" + src.getClass() + " with type" + type);
-        }
-        if (filters.containsKey(src.getClass().getName())) {
+        getLogger().info("serializing object:" + src + " for type "+ type);
+        if (src != null && filters.containsKey(src.getClass().getName())) {
             getLogger()
                     .warn("Found registered filter - could not use custom view and custom filter for class:"
                             + src.getClass().getName());
@@ -138,7 +133,7 @@ public class Jackson2MapperService exten
             // Exception("Found registered filter - could not use custom view and custom filter for class:"+
             // src.getClass().getName());
         }
-        return mapper.writerWithView(type).writeValueAsString(src);
+        return (type != null)? mapper.writerWithView(type).writeValueAsString(src): mapper.writeValueAsString(src);
     }
 
     public <T> String ser(Object src, FilterProvider filters) throws Exception {
@@ -258,17 +253,16 @@ public class Jackson2MapperService exten
 
     private <T> String filter(Object src, Class<T> filterClass,
             FilterContext fc,  boolean refresh, String... filterAttr) throws Exception {
-        if (src == null) {
-            getLogger().info("no serializable object:" + src + " for filterClass "+ filterClass);
-            return null;
-        }
-        FilterProvider filter = checkFilter(fc, src.getClass(), filterClass,
+        FilterProvider filter = null;
+        if (src != null) {
+            filter = checkFilter(fc, src.getClass(), filterClass,
                 filterAttr);
+        }
         getLogger().info("filtering with filter "+ filter);
         String serialized = ser(src, filter);
         if (!cacheFilters || refresh) {
             removeFilter(filterClass);
-            removeFilter(src.getClass());
+            if (src != null) removeFilter(src.getClass());
         }
         return serialized;
     }

Modified: turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java?rev=1558819&r1=1558818&r2=1558819&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java (original)
+++ turbine/fulcrum/trunk/json/jackson2/src/test/org/apache/fulcrum/json/jackson/JacksonMapperTest.java Thu Jan 16 14:46:36 2014
@@ -272,6 +272,28 @@ public class JacksonMapperTest extends B
                 "DeSer failed ",
                 "[{'width':25},{'width':250},{'name':'joe0'},{'name':'joe1'},{'name':'joe2'}]",
                 serRect.replace('"', '\''));
+        
+        // adding h and name for first two items, adding width for beans
+        String deSerTest = "[{\"width\":25,\"age\":99, \"h\":50,\"name\":\"rect1\"},{\"width\":250,\"name\":\"rect2\"},{\"name\":\"joe0\"},{\"name\":\"joe1\"},{\"name\":\"joe2\"}]";
+        
+        List typeRectList = new ArrayList(); //empty
+        // could not use Mixins here, but Adapters are still set
+        Collection<Rectangle> resultList0 =  sc.deSerCollection(deSerTest, typeRectList, Rectangle.class);
+        System.out.println("resultList0 class:" +resultList0.getClass());
+        for (int i = 0; i < 5; i++) {
+            // name and h should be null as it is ignored,  cft. Mixin
+            assertTrue(((List<Rectangle>)resultList0).get(i).getName()==null);
+            assertTrue(((List<Rectangle>)resultList0).get(i).getH()==0);
+        }
+        // could not use Mixins here, but Adapters are still set
+        Collection<Bean> resultList1 =  sc.deSerCollection(deSerTest, typeRectList, Bean.class);
+        System.out.println("resultList1 class:" +resultList1.getClass());
+        for (int i = 0; i < 5; i++) {
+            System.out.println("resultList1 "+i+ " name:"+((List<Bean>)resultList1).get(i).getName());
+            // name should NOT be null, age should be ignored, cft. BeanMixin
+            assertTrue(((List<Bean>)resultList1).get(i).getName()!=null);
+            assertTrue(((List<Bean>)resultList1).get(i).getAge()==0);
+        }
     }
 
     // @JsonFilter("myFilter")