Bladeren bron

add OutOfMemoryErrorUncaughtExceptionHandler

tags/2.0.1
Jonathan Cobb 4 jaren geleden
bovenliggende
commit
81f18e0d52
1 gewijzigde bestanden met toevoegingen van 29 en 0 verwijderingen
  1. +29
    -0
      src/main/java/org/cobbzilla/util/system/OutOfMemoryErrorUncaughtExceptionHandler.java

+ 29
- 0
src/main/java/org/cobbzilla/util/system/OutOfMemoryErrorUncaughtExceptionHandler.java Bestand weergeven

@@ -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));
}
}

}

Laden…
Annuleren
Opslaan