@Override public void run() { try { final ProgressEvent status = watchable.requestStatus(); final ProgressEvent progress = new ProgressEvent( watchable, status.getState(), status.getStep(), status.getMaxSteps(), status.getMessage()); watchable.getStatusCallback().progress(progress); if (ProgressEvent.State.FINISHED == status.getState()) { if (LOG.isInfoEnabled()) { LOG.info( "progresswatch finished for watchable because status is FINISHED: " + watchable); // NOI18N } if (deregister != null) { deregisterDispatcher.submit(deregister); } } else if (ProgressEvent.State.BROKEN == status.getState()) { if (LOG.isInfoEnabled()) { LOG.warn( "progresswatch finished for watchable because status is BROKEN: " + watchable); // NOI18N } if (deregister != null) { deregisterDispatcher.submit(deregister); } } } catch (final IOException e) { retryCount++; if (retryCount > MAX_RETRIES) { LOG.error("error in status poll: " + watchable, e); // NOI18N final ProgressEvent progress = new ProgressEvent(watchable, State.BROKEN, e.getMessage()); watchable.getStatusCallback().progress(progress); if (deregister != null) { deregisterDispatcher.submit(deregister); } } else { LOG.warn( "error in status poll, retrying (no. " + retryCount + "/" + MAX_RETRIES + "): " // NOI18N + watchable, e); } } }
@Override public void run() { WatchEvent evt = w.monitor(); if (evt != null) { w.handleEvent(evt); } }