@Override public void uncaughtException(Thread t, Throwable e) { Kompics.getFaultHandler().handle(new Fault(e, null, null)); }
@SuppressWarnings("unchecked") private boolean executeEvent(KompicsEvent event, Handler<?> handler) { try { ((Handler<KompicsEvent>) handler).handle(event); return false; // no state change } catch (Throwable throwable) { logger().error("Handling an event caused a fault! Might be handled later...", throwable); markSubtreeAs(State.FAULTY); escalateFault(new Fault(throwable, this, event)); return true; // state changed } }
@Override protected boolean exec() { try { run(); return false; // } catch(InterruptedException ex) { // Thread.currentThread().interrupt(); // return false; // } } catch (Throwable e) { Kompics.getFaultHandler().handle(new Fault(e, this, null)); throw e; } } }
@SuppressWarnings("unchecked") private boolean executeEvent(PatternExtractor<?, ?> event, MatchedHandler<?, ?, ?> handler) { try { PatternExtractor<?, Object> pe = (PatternExtractor<?, Object>) event; MatchedHandler<?, Object, PatternExtractor<?, Object>> h = (MatchedHandler<?, Object, PatternExtractor<?, Object>>) handler; h.handle(pe.extractValue(), pe); return false; // no state change } catch (Throwable throwable) { logger().error("Handling an event caused a fault! Might be handled later...", throwable); markSubtreeAs(State.FAULTY); escalateFault(new Fault(throwable, this, event)); return true; // state changed } }