1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.omid.tso;
19
20 import com.lmax.disruptor.ExceptionHandler;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
23
24 class FatalExceptionHandler implements ExceptionHandler {
25
26 private static final Logger LOG = LoggerFactory.getLogger(FatalExceptionHandler.class);
27
28 Panicker panicker;
29
30 FatalExceptionHandler(Panicker panicker) {
31 this.panicker = panicker;
32 }
33
34 @Override
35 public void handleEventException(Throwable ex, long sequence, Object event) {
36
37 LOG.error("Uncaught exception throws for sequence {}, event {}", sequence, event, ex);
38 panicker.panic("Uncaught exception in disruptor thread", ex);
39
40 }
41
42 @Override
43 public void handleOnShutdownException(Throwable ex) {
44 LOG.warn("Uncaught exception shutting down", ex);
45 }
46
47 @Override
48 public void handleOnStartException(Throwable ex) {
49 panicker.panic("Uncaught exception starting up", ex);
50 }
51
52 }