NLPchina / ansj_seg

ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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里

我试下,多谢。