【发布时间】:2015-02-24 18:13:35
【问题描述】:
我在使用 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 上)。
【问题讨论】:
-
您是否有堆栈跟踪,如果有,您可以将其编辑到您的问题中吗?
-
(.*)+反正是个很奇怪的表达方式…… -
是的,正则表达式确实很“有趣”(编辑结果),这可能是 JDK 测试没有发现它的原因。将正则表达式更改为更明智也可以“修复”错误,所以我很好。