Spring 项目中,Analysis 在 并发20时候会报错 java.lang.ArrayIndexOutOfBoundsException
atesop opened this issue · comments
Hi all,有人遇到过并发数多时候,报异常的情况么?
环境: jdk_1.8.0
依赖:
<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.nlpcn</groupId>
<artifactId>nlp-lang</artifactId>
<version>1.7.9</version>
</dependency>
void init() {
Analysis analysis = new DicAnalysis();
}
void run(String title) {
Result result = this.analysis.parseStr(title).recognition(this.filter);
}
当使用 wrk 压测,并发数=20时,
报错如下,
java.lang.ArrayIndexOutOfBoundsException: 22
at org.ansj.util.Graph.getMaxTerm(Graph.java:174) ~[ansj_seg-5.1.6.jar!/:?]
at org.ansj.util.Graph.rmLittlePath(Graph.java:144) ~[ansj_seg-5.1.6.jar!/:?]
at org.ansj.splitWord.Analysis.analysisStr(Analysis.java:156) ~[ansj_seg-5.1.6.jar!/:?]
at org.ansj.splitWord.Analysis.parseStr(Analysis.java:306) ~[ansj_seg-5.1.6.jar!/:?]
每次使用的时候需要创建一个Analysis,或者也可以考虑放到ThreadLocal里
我试下,多谢。