import com.google.common.util.concurrent.SettableFuture;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.function.Supplier;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.openflowplugin.api.ConnectionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class StatisticsPollingService extends AbstractScheduledService {
+ private static final Logger LOG = LoggerFactory.getLogger(StatisticsPollingService.class);
private static final long DEFAULT_STATS_TIMEOUT = 50000;
private final TimeCounter counter;
private final Supplier<ListenableFuture<Boolean>> gatheringSupplier;
private final SettableFuture<Void> future = SettableFuture.create();
- StatisticsPollingService(@Nonnull final TimeCounter counter,
+ StatisticsPollingService(@NonNull final TimeCounter counter,
final long pollingInterval,
final long maximumTimerDelay,
- @Nonnull final Supplier<ListenableFuture<Boolean>> gatheringSupplier) {
+ @NonNull final Supplier<ListenableFuture<Boolean>> gatheringSupplier) {
this.counter = counter;
this.pollingInterval = pollingInterval;
this.maximumTimerDelay = maximumTimerDelay;
try {
waitFuture.get(statsTimeout, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException | ExecutionException | TimeoutException e) {
+ LOG.warn("Exception occured while waiting for the stats collection.", e);
} finally {
counter.addTimeMark();
}