Java8 Nashorn正则表达式引擎的奇怪例外

时间:2015-02-24 18:13:35

标签: regex java-8 nashorn

我在使用Nashorn Javascript引擎解析文本时遇到了一个奇怪的java.lang.ArrayIndexOutOfBoundsException: 64错误。要在JJS中重现问题:

var col0 = " xxxx,         xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ";
var name = /([^\s]+),(.*)+/.exec(col0);

测试字符串的其他一些变体也会导致相同的异常,例如。

var col0 = "x,         xxxxxxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ";

发生JDK8版本25,31和40ea(在Windows 8上)。

1 个答案:

答案 0 :(得分:3)

这是我们正则表达式实现中的一个错误。我已经为它提交了一个错误:

https://bugs.openjdk.java.net/browse/JDK-8073818

更新:您可以使用-Dnashorn.regexp.impl=jdk选项作为解决方法。这使得Nashorn使用java.util.regex包而不是Joni,它没有显示这个bug。

相关问题