Explorar el Código

add OutOfMemoryErrorUncaughtExceptionHandler

tags/2.0.1
Jonathan Cobb hace 4 años
padre
commit
81f18e0d52
Se han modificado 1 ficheros con 29 adiciones y 0 borrados
  1. +29
    -0
      src/main/java/org/cobbzilla/util/system/OutOfMemoryErrorUncaughtExceptionHandler.java

+ 29
- 0
src/main/java/org/cobbzilla/util/system/OutOfMemoryErrorUncaughtExceptionHandler.java Ver fichero

@@ -0,0 +1,29 @@
package org.cobbzilla.util.system;

import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import static org.cobbzilla.util.daemon.ZillaRuntime.shortError;
import static org.cobbzilla.util.daemon.ZillaRuntime.stacktrace;

@AllArgsConstructor @Slf4j
public class OutOfMemoryErrorUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {

public static final OutOfMemoryErrorUncaughtExceptionHandler EXIT_ON_OOME = new OutOfMemoryErrorUncaughtExceptionHandler();

private final int status;

public OutOfMemoryErrorUncaughtExceptionHandler() { status = 2; }

@Override public void uncaughtException(Thread t, Throwable e) {
if (e instanceof OutOfMemoryError) {
try {
log.error("!!!!! OutOfMemoryError: calling System.exit("+status+") from: " + stacktrace(t));
} catch (Throwable ignored) {}
System.exit(status);
} else {
log.error("!!!!! Uncaught Exception: " + shortError(e));
}
}

}

Cargando…
Cancelar
Guardar