Сервер остановлен во время выполнения Invocable по второму запросу
Во время выполнения следующей строки мой сервер остановился для второго запроса.
Invocable invocableEngine = load();
Object o1 = invocableEngine.invokeFunction("add",5,6,jsonObj);
private static Invocable invocable =null;
public static Invocable load() throws ScriptException, NoSuchMethodException, FileNotFoundException {
if(invocable!=null){
return invocable;
}
File jsFile = new File("test.js");
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("jav8"); //No I18N
Reader reader = new FileReader(jsFile);
engine.eval(reader);
invocable = (Invocable) engine;
return invocable;
}
test.js
add = function(a, b) {
return a + b;
}
Я не хочу оценивать js для каждого запроса, так что я использовал Invocable как статический.
Это ошибка, брошенная в консоль
Неустранимая ошибка была обнаружена средой выполнения Java:
SIGSEGV (0xb) при pc=0x0000000121d6f4b4, pid=791, tid=33539
Версия JRE: среда выполнения Java(TM) SE (8.0_25-b17) (сборка 1.8.0_25-b17) Java VM: виртуальная машина 64-разрядного сервера Java HotSpot(TM) (сжатый режим bsd-amd64 в смешанном режиме 25.25-b02) фрейм: C [libjav8651059438244345661.dylib+0x184b4] _ZN2v811HandleScopeC1Ev+0x84
Не удалось записать дамп ядра. Основные дампы были отключены. Чтобы включить дамп ядра, попробуйте "ulimit -c unlimited" перед повторным запуском Java
Файл отчета об ошибке с дополнительной информацией сохраняется как: hs_err_pid791.log
Если вы хотите отправить отчет об ошибке, посетите:
http://bugreport.sun.com/bugreport/crash.jsp Сбой произошел за пределами виртуальной машины Java в собственном коде. Смотрите проблемный кадр, где сообщать об ошибке.