@Override public void run() { listener.progressChanged(event); } });
/** * Delivers the progress event to the underlying listener but only if * there has not been an exception previously thrown by the listener. * <p> * {@inheritDoc} */ @Override public void progressChanged(ProgressEvent progressEvent) { if (cause != null) return; try { this.listener.progressChanged(progressEvent); } catch(Throwable t) { cause = t; } }
private static Future<?> quietlyCallListener(final ProgressListener listener, final ProgressEvent event) { try { listener.progressChanged(event); } catch(Throwable t) { // That's right, we need to suppress all errors so as to be on par // with the async mode where all failures will be ignored. LogFactory.getLog(SDKProgressPublisher.class) .debug("Failure from the event listener", t); } return null; }
public void progressChanged(final ProgressEvent progressEvent) { ProgressEvent filteredEvent = progressEvent; if (progressEventFilter != null) { filteredEvent = progressEventFilter.filter(progressEvent); if (filteredEvent == null) return; } for ( ProgressListener listener : listeners ) { try { listener.progressChanged(filteredEvent); } catch ( RuntimeException e ) { log.warn("Couldn't update progress listener", e); } } }
@Override public void run() { listener.progressChanged(event); } });
@Override public void run() { listener.progressChanged(progressEvent); } });
@Override public void run() { listener.progressChanged(progressEvent); } });
/** * Delivers the progress event to the underlying listener but only if * there has not been an exception previously thrown by the listener. * <p> * {@inheritDoc} */ @Override public void progressChanged(ProgressEvent progressEvent) { if (cause != null) return; try { this.listener.progressChanged(progressEvent); } catch(Throwable t) { cause = t; } }
private static Future<?> quietlyCallListener(final ProgressListener listener, final ProgressEvent event) { try { listener.progressChanged(event); } catch(Throwable t) { // That's right, we need to suppress all errors so as to be on par // with the async mode where all failures will be ignored. LogFactory.getLog(SDKProgressPublisher.class) .debug("Failure from the event listener", t); } return null; }
public void progressChanged(final ProgressEvent progressEvent) { ProgressEvent filteredEvent = progressEvent; if (progressEventFilter != null) { filteredEvent = progressEventFilter.filter(progressEvent); if (filteredEvent == null) return; } for ( ProgressListener listener : listeners ) { try { listener.progressChanged(filteredEvent); } catch ( RuntimeException e ) { log.warn("Couldn't update progress listener", e); } } }
@Override public void progressChanged(final ProgressEvent progressEvent) { ProgressEvent filteredEvent = progressEvent; if (progressEventFilter != null) { filteredEvent = progressEventFilter.filter(progressEvent); if (filteredEvent == null) return; } for (ProgressListener listener : listeners) { try { listener.progressChanged(filteredEvent); } catch (RuntimeException e) { log.warn("Couldn't update progress listener", e); } } }
@Test public void testWrapListener() throws InterruptedException { final List<ProgressEvent> capturedEvents = new ArrayList<ProgressEvent>(); final List<Long> threadIds = new ArrayList<Long>(); threadIds.add(Thread.currentThread().getId()); ProgressListener pl = new ProgressListener() { @Override public void progressChanged(ProgressEvent progressEvent) { threadIds.add(Thread.currentThread().getId()); capturedEvents.add(progressEvent); } }; ProgressEvent toSend = new ProgressEvent(0); ProgressListenerCallbackExecutor.wrapListener(pl); pl.progressChanged(toSend); ExecutorService service = ProgressListenerCallbackExecutor.getExecutorService(); service.shutdown(); service.awaitTermination(10, TimeUnit.SECONDS); ProgressListenerCallbackExecutor.executor = ProgressListenerCallbackExecutor .createNewExecutorService(); assertEquals(threadIds.size(), 2); assertEquals(capturedEvents.size(), 1); assertSame(capturedEvents.get(0), toSend); }
@Override public void run() { listener.progressChanged(progressEvent); } });
@Override public void run() { listener.progressChanged(event); } });
@Override public void run() { listener.progressChanged(progressEvent); } });
@Override public void run() { listener.progressChanged(progressEvent); } });
@Override public void run() { listener.progressChanged(progressEvent); } });
private static Future<?> quietlyCallListener(final ProgressListener listener, final ProgressEvent event) { try { listener.progressChanged(event); } catch(Throwable t) { // That's right, we need to suppress all errors so as to be on par // with the async mode where all failures will be ignored. LogFactory.getLog(SDKProgressPublisher.class) .debug("Failure from the event listener", t); } return null; }
public void progressChanged(final ProgressEvent progressEvent) { ProgressEvent filteredEvent = progressEvent; if (progressEventFilter != null) { filteredEvent = progressEventFilter.filter(progressEvent); if (filteredEvent == null) return; } for ( ProgressListener listener : listeners ) { try { listener.progressChanged(filteredEvent); } catch ( RuntimeException e ) { log.warn("Couldn't update progress listener", e); } } }
@Override public void progressChanged(final ProgressEvent progressEvent) { ProgressEvent filteredEvent = progressEvent; if (progressEventFilter != null) { filteredEvent = progressEventFilter.filter(progressEvent); if (filteredEvent == null) return; } for (ProgressListener listener : listeners) { try { listener.progressChanged(filteredEvent); } catch (RuntimeException e) { log.warn("Couldn't update progress listener", e); } } }