diff --git a/src/main/java/com/alibaba/fastjson/serializer/SerializeConfig.java b/src/main/java/com/alibaba/fastjson/serializer/SerializeConfig.java index 2ef2ee5b7..2f402c6ff 100755 --- a/src/main/java/com/alibaba/fastjson/serializer/SerializeConfig.java +++ b/src/main/java/com/alibaba/fastjson/serializer/SerializeConfig.java @@ -22,16 +22,7 @@ import java.net.URI; import java.net.URL; import java.nio.charset.Charset; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Collection; -import java.util.Currency; -import java.util.Date; -import java.util.Enumeration; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.TimeZone; -import java.util.UUID; +import java.util.*; import java.util.regex.Pattern; import com.alibaba.fastjson.JSON; @@ -121,6 +112,8 @@ public class SerializeConfig { Class superClass; if (Map.class.isAssignableFrom(clazz)) { serializers.put(clazz, new MapSerializer()); + } else if (AbstractSequentialList.class.isAssignableFrom(clazz)) { + serializers.put(clazz, CollectionCodec.instance); } else if (List.class.isAssignableFrom(clazz)) { serializers.put(clazz, new ListSerializer()); } else if (Collection.class.isAssignableFrom(clazz)) { diff --git a/src/test/java/com/alibaba/json/bvt/issue_1300/Issue1375.java b/src/test/java/com/alibaba/json/bvt/issue_1300/Issue1375.java new file mode 100644 index 000000000..b30ea8009 --- /dev/null +++ b/src/test/java/com/alibaba/json/bvt/issue_1300/Issue1375.java @@ -0,0 +1,22 @@ +package com.alibaba.json.bvt.issue_1300; + +import com.alibaba.fastjson.serializer.CollectionCodec; +import com.alibaba.fastjson.serializer.ListSerializer; +import com.alibaba.fastjson.serializer.SerializeConfig; +import junit.framework.TestCase; + +import java.util.ArrayList; +import java.util.LinkedList; + +/** + * Created by wenshao on 06/08/2017. + */ +public class Issue1375 extends TestCase { + public void test_issue() throws Exception { + assertSame(CollectionCodec.instance + , SerializeConfig.getGlobalInstance() + .get(LinkedList.class)); + assertTrue(SerializeConfig.getGlobalInstance() + .get(ArrayList.class) instanceof ListSerializer); + } +}