fix from dubbo:master, 2.5.7 : GenericJSONConverter主要是用在日志部分输出，所以当我们输出locale对象时就发生stack溢出。
```
java.lang.StackOverflowError
	at com.alibaba.dubbo.common.json.JSONWriter.valueString(JSONWriter.java:189)
	at com.alibaba.dubbo.common.json.GenericJSONConverter$7.encode(GenericJSONConverter.java:100)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:338)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:347)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:395)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:347)
	at com.alibaba.dubbo.common.json.GenericJSONConverter.writeValue(GenericJSONConverter.java:395)
```
GlobalDecoderMap.put(char.class, d);
        d = new Decoder() {
            @Override
            public Object decode(Object jv) {
                if (jv instanceof String && ((String) jv).length() > 0) return ((String) jv).charAt(0);
                return (Character) null;
            }
        };
        GlobalDecoderMap.put(Character.class, d);
        d = new Decoder() {
            @Override
            public Object decode(Object jv) {
                if (jv instanceof Number) return ((Number) jv).intValue();
                return 0;
            }
        };
        GlobalDecoderMap.put(int.class, d);
        d = new Decoder() {
            @Override
            public Object decode(Object jv) {
                if (jv instanceof Number) return Integer.valueOf(((Number) jv).intValue());
                return (Integer) null;
            }
        };
        GlobalDecoderMap.put(Integer.class, d);
        d = new Decoder() {
            @Override
            public Object decode(Object jv) {
                if (jv instanceof Number) return ((Number) jv).shortValue();
                return (short) 0;