package com.alibaba.json.bvt.bug; import java.util.List; import java.util.Random; import java.util.concurrent.CountDownLatch; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; public class Issue124 extends TestCase { public void test_for_issue() throws Exception { // final ObjectMapper mapper = new ObjectMapper(); // mapper.setSerializationInclusion(Include.NON_NULL); final Random random = new Random(); final int threadCount = 1000; final CountDownLatch latch = new CountDownLatch(threadCount); // { // UserInfo info = new UserInfo(); // CheckInfoVo vo = new CheckInfoVo(100); // JSON.toJSONString(new SuccessReturn(info), SerializerFeature.WriteDateUseDateFormat); // JSON.toJSONString(new SuccessReturn(vo), // SerializerFeature.WriteDateUseDateFormat); // } for (int i = 0; i < threadCount; i++) { new Thread() { @Override public void run() { UserInfo info = new UserInfo(); CheckInfoVo vo = new CheckInfoVo(100); int r = random.nextInt(); try { if (r % 2 == 0) { // System.out.println(mapper.writeValueAsString(info)); System.out.println(JSON.toJSONString(new SuccessReturn(info), SerializerFeature.WriteDateUseDateFormat)); } else { // System.out.println(mapper.writeValueAsString(vo)); System.out.println(JSON.toJSONString(new SuccessReturn(vo), SerializerFeature.WriteDateUseDateFormat)); } } catch (Exception e) { e.printStackTrace(); System.exit(0); } finally { latch.countDown(); } } }.start(); } latch.await(); } static class SuccessReturn { private int code = 0; private Object data; SuccessReturn(Object data){ this.data = data; } public int getCode() { return code; } public Object getData() { return data; } } static class CheckInfoVo { private final int gmMessageCount; public CheckInfoVo(){ this.gmMessageCount = 0; } public CheckInfoVo(int gmMessageCount){ this.gmMessageCount = gmMessageCount; } public int getGmMessageCount() { return gmMessageCount; } } static class UserInfo { private long uid; private String userName; private String nickName; private int userType; private int avatar; private String updateTime; private int modifyNickanme; // 1可以修改nickname 0不能修改 private long appid; private List<Integer> serverIds; public long getAppid() { return appid; } public void setAppid(long appid) { this.appid = appid; } public long getUid() { return uid; } public void setUid(long uid) { this.uid = uid; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getUserType() { return userType; } public void setUserType(int userType) { this.userType = userType; } public int getAvatar() { return avatar; } public void setAvatar(int avatar) { this.avatar = avatar; } public String getUpdateTime() { return updateTime; } public void setUpdateTime(String updateTime) { this.updateTime = updateTime; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public int getModifyNickanme() { return modifyNickanme; } public void setModifyNickanme(int modifyNickanme) { this.modifyNickanme = modifyNickanme; } public List<Integer> getServerIds() { return serverIds; } public void setServerIds(List<Integer> serverIds) { this.serverIds = serverIds; } } }