Мое приложение начало детерминистически отказываться после обновления до Java 8. Оно не генерирует исключение или не выводит сообщение об ошибке. Единственным признаком его отказа является код выхода -559038737. Кто-нибудь сталкивался с этим?
Код выхода JVM 8 -559038737 (0xDEADBEEF)
Ответ 1
Этот код выхода, вероятно, поступает из Apache Commons Exec:
public interface Executor {
/** Invalid exit code. */
int INVALID_EXITVALUE = 0xdeadbeef;
...
В Java 8 есть несколько изменений, которые могли бы ввести ошибку.
Но, не зная своего пути к классам и кода, это всего лишь образованное предположение.
Возможно, вы используете асинхронный способ использования Commons Exec:
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
executor.execute(cmdLine, resultHandler);
int exitValue = resultHandler.waitFor();
return exitValue;
Итак, исключение записывается только в resultHandler, но не печатает на stderr автоматически?