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)
```
GlobalEncoderMap.put(AtomicInteger.class, e);
        e = new Encoder() {
            @Override
            public void encode(Object obj, JSONWriter jb) throws IOException {
                jb.valueString(Character.toString((Character) obj));
            }
        };
        GlobalEncoderMap.put(char.class, e);
        GlobalEncoderMap.put(Character.class, e);
        e = new Encoder() {
            @Override
            public void encode(Object obj, JSONWriter jb) throws IOException {
                jb.valueLong(((Number) obj).longValue());
            }
        };
        GlobalEncoderMap.put(long.class, e);
        GlobalEncoderMap.put(Long.class, e);
        GlobalEncoderMap.put(AtomicLong.class, e);
        GlobalEncoderMap.put(BigInteger.class, e);
        e = new Encoder() {
            @Override
            public void encode(Object obj, JSONWriter jb) throws IOException {
                jb.valueFloat(((Number) obj).floatValue());
            }
        };
        GlobalEncoderMap.put(float.class, e);
        GlobalEncoderMap.put(Float.class, e);
        e = new Encoder() {
            @Override
            public void encode(Object obj, JSONWriter jb) throws IOException {