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