StackOverflowError 使用 Nashorn 分析 pac 代理文件

StackOverflowError using Nashorn to analyze pac proxy file

由于我使用的标准 Java 代理检测错误 nashorn 获取特定 url 的代理 一个 proxy.pac 文件(适用于 IE 和 Firefox)。

我在这段代码中遇到 WhosebugError:

while (retrycounter < 50) {
      try {
           engine.eval(myscript);
           break;
          } catch (WhosebugError e) {
             retrycounter ++;
          }
}

奇怪的是,当我 运行 这段代码处于调试模式时,它起作用了,当我 在 engine.eval(myscript) 下断点;并跨过调试器。

pac 文件很大 - 900 行。 我在文件中有很多 shExpMatch(.....) 行。

当我删除第 400-600 行时,我的脚本也在非调试模式下工作。 当我删除 400-500 行时,它不起作用。 当我删除第 500-600 行时,它不起作用。

Nashorn 引擎是否与我的文件大小有关?

我没有 post 更多代码,因为它在调试模式下工作,当我缩小文件时。

问题存在,使用Java 1.8.0_73。 使用 1.8.0_77 和 1.8.0_91 它可以工作。

是否可以 运行 旧版本中的脚本? 也许通过对引擎的设置?

此致

相同的代码适用于较新的 java 版本。 1.8.0_91(我认为 1.8.0_7xx 也有效,但不确定)。