У меня есть следующий метод, который переопределяет сортировщик по умолчанию в Jenkins:
@Override
public void sortBuildableItems(List<Queue.BuildableItem> items) {
logBuildQueue(items, "BEFORE");
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future future = executorService.submit(new Runnable() {
@Override public void run() {
items.sort(CustomSorter::compare);
}
});
try {
future.get(2, TimeUnit.SECONDS);
}
catch (InterruptedException e) {
LOGGER.log(Level.SEVERE, "[INTERRUPTED EXCEPTION] Message:" + e.getMessage() + " StackTrace: " + Arrays.toString(e.getStackTrace()));
setDefaultSorter();
e.printStackTrace();
}
catch (ExecutionException e) {
LOGGER.log(Level.SEVERE, "[EXECUTION EXCEPTION] Message:" + e.getMessage() + " StackTrace: " + Arrays.toString(e.getStackTrace()));
setDefaultSorter();
e.printStackTrace();
}
catch (TimeoutException e) {
LOGGER.log(Level.SEVERE, "[TIMEOUT EXCEPTION] Sorting the items took more then 2 seconds, Message:" + e.getMessage() + " StackTrace: " + Arrays.toString(e.getStackTrace()));
setDefaultSorter();
e.printStackTrace();
}
logBuildQueue(items, "AFTER");
}
Я ищу распечатать все, что могу достать, если произойдет исключение, и мне было интересно, есть лилюбой способ получить дамп потока, помещенный в журналы, поскольку сообщение об ошибке может отсутствовать.