@Override public void invoke(final Object event) { try { method.invoke(observer, event); } catch (final InvocationTargetException e) { if (!seen.get().add(this)) { return; } final Throwable t = e.getTargetException() == null ? e : e.getTargetException(); if (!(event instanceof ObserverFailed)) { doFire(new ObserverFailed(observer, method, event, t)); } if (t instanceof InvocationTargetException && t.getCause() != null) { ObserverManager.logger().log(Level.SEVERE, "error invoking " + observer, t.getCause()); } else { ObserverManager.logger().log(Level.SEVERE, "error invoking " + observer, t); } } catch (final IllegalAccessException e) { ObserverManager.logger().log(Level.SEVERE, method + " can't be invoked, check it is public"); } }
public void failIfNeeded(@Observes final ObserverFailed failBootIfMisconfigured) { if (failBootIfMisconfigured.getObserver() == null) { return; final Observer observer = failBootIfMisconfigured.getObserver().getClass().getAnnotation(Observer.class); if ((observer != null && !observer.canFail()) || shouldFail(failBootIfMisconfigured.getObserver())) { final Class<?>[] parameterTypes = failBootIfMisconfigured.getMethod().getParameterTypes(); if (parameterTypes.length > 0 && observer != null && asList(observer.excludes()).contains(parameterTypes[0])) { return; final Throwable throwable = failBootIfMisconfigured.getThrowable(); if (failingErrors != null) { failingErrors.add(throwable);
@Override public void invoke(final Object event) { try { method.invoke(observer, event); } catch (final InvocationTargetException e) { if (!seen.get().add(this)) { return; } final Throwable t = e.getTargetException() == null ? e : e.getTargetException(); if (!(event instanceof ObserverFailed)) { doFire(new ObserverFailed(observer, method, event, t)); } if (t instanceof InvocationTargetException && t.getCause() != null) { logger().log(Level.SEVERE, "error invoking " + observer, t.getCause()); } else { logger().log(Level.SEVERE, "error invoking " + observer, t); } } catch (final IllegalAccessException e) { e.printStackTrace(); } }