mirror of https://github.com/alibaba/fastjson2.git
add testcase for #3763
This commit is contained in:
parent
a3bb9d24f6
commit
be96fb98c7
|
@ -0,0 +1,37 @@
|
||||||
|
package com.alibaba.fastjson2.issues_3700;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.TypeReference;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
public class Issue3763 {
|
||||||
|
@Test
|
||||||
|
public void test() throws Throwable {
|
||||||
|
String str = "{\"queryParam\":{},\"columnOrderParam\":[{\"field\":\"RTIME\",\"sortType\":\"DESC\"}],\"simpleQueryParam\":[],\"columnFilterParam\":[{\"field\":\"XXXX$USER_ID\",\"dateFormat\":\"\",\"value\":\"\",\"fieldValueRel\":\"like\",\"conditionRel\":\"and\",\"conditions\":[{\"expression\":\"eq\",\"value\":\"77c21b37d87e457e8669508310420ed7\"},{\"expression\":\"eq\",\"value\":\"\"}]}]}";
|
||||||
|
|
||||||
|
final int taskCount = 100;
|
||||||
|
CountDownLatch startLatch = new CountDownLatch(1);
|
||||||
|
CountDownLatch endLatch = new CountDownLatch(taskCount);
|
||||||
|
Thread[] threads = new Thread[taskCount];
|
||||||
|
for (int i = 0; i < taskCount; i++) {
|
||||||
|
threads[i] = new Thread(() -> {
|
||||||
|
try {
|
||||||
|
startLatch.await();
|
||||||
|
JSON.parseObject(str, new TypeReference<Map<String, Object>>() {
|
||||||
|
});
|
||||||
|
JSON.parseObject(str);
|
||||||
|
} catch (InterruptedException ignored) {
|
||||||
|
// ignore
|
||||||
|
} finally {
|
||||||
|
endLatch.countDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
threads[i].start();
|
||||||
|
}
|
||||||
|
startLatch.countDown();
|
||||||
|
endLatch.await();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.alibaba.fastjson2.issue_3700;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson.parser.Feature;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
public class Issue3763 {
|
||||||
|
@Test
|
||||||
|
public void test() throws Throwable {
|
||||||
|
String str = "{\"queryParam\":{},\"columnOrderParam\":[{\"field\":\"RTIME\",\"sortType\":\"DESC\"}],\"simpleQueryParam\":[],\"columnFilterParam\":[{\"field\":\"XXXX$USER_ID\",\"dateFormat\":\"\",\"value\":\"\",\"fieldValueRel\":\"like\",\"conditionRel\":\"and\",\"conditions\":[{\"expression\":\"eq\",\"value\":\"77c21b37d87e457e8669508310420ed7\"},{\"expression\":\"eq\",\"value\":\"\"}]}]}";
|
||||||
|
|
||||||
|
final int taskCount = 100;
|
||||||
|
CountDownLatch startLatch = new CountDownLatch(1);
|
||||||
|
CountDownLatch endLatch = new CountDownLatch(taskCount);
|
||||||
|
Thread[] threads = new Thread[taskCount];
|
||||||
|
for (int i = 0; i < taskCount; i++) {
|
||||||
|
threads[i] = new Thread(() -> {
|
||||||
|
try {
|
||||||
|
startLatch.await();
|
||||||
|
JSONObject.parseObject(str, Feature.OrderedField);
|
||||||
|
} catch (InterruptedException ignored) {
|
||||||
|
// ignore
|
||||||
|
} finally {
|
||||||
|
endLatch.countDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
threads[i].start();
|
||||||
|
}
|
||||||
|
startLatch.countDown();
|
||||||
|
endLatch.await();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue