StackOverflowError使用Nashorn来分析pac代理文件

时间:2016-05-02 15:05:39

标签: java nashorn

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

我在这段代码中得到了StackoverflowError:

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

奇怪的是,当我在调试模式下运行此代码时,它可以工作,当我 在engine.eval(myscript)上创建一个断点;并在调试器中跳过。

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

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

Nashorn引擎问题与我的文件大小有关吗?

我没有发布更多代码,因为它可以在调试模式下工作,也可以缩小文件。

使用Java 1.8.0_73存在问题。 它的工作原理是1.8.0_77和1.8.0_91。

是否有可能在旧版本中运行脚本? 也许通过引擎设置?

最好的问候

1 个答案:

答案 0 :(得分:0)

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