[digitalstrom] fix NPE (#8992)
* fix NPE * fix formatting Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
This commit is contained in:
parent
132f05bba5
commit
c0118930be
@ -14,7 +14,6 @@ package org.openhab.binding.digitalstrom.internal.lib.event;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
@ -137,14 +136,21 @@ public class EventListener {
|
|||||||
return isStarted;
|
return isStarted;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void internalStop() {
|
private void stopSubscriptionScheduler() {
|
||||||
if (subscriptionScheduler != null && !subscriptionScheduler.isCancelled()) {
|
final ScheduledFuture<?> subscriptionScheduler = this.subscriptionScheduler;
|
||||||
|
if (subscriptionScheduler != null) {
|
||||||
subscriptionScheduler.cancel(true);
|
subscriptionScheduler.cancel(true);
|
||||||
subscriptionScheduler = null;
|
this.subscriptionScheduler = null;
|
||||||
}
|
}
|
||||||
if (pollingScheduler != null && !pollingScheduler.isCancelled()) {
|
}
|
||||||
|
|
||||||
|
private void internalStop() {
|
||||||
|
stopSubscriptionScheduler();
|
||||||
|
|
||||||
|
ScheduledFuture<?> pollingScheduler = this.pollingScheduler;
|
||||||
|
if (pollingScheduler != null) {
|
||||||
pollingScheduler.cancel(true);
|
pollingScheduler.cancel(true);
|
||||||
pollingScheduler = null;
|
this.pollingScheduler = null;
|
||||||
unsubscribe();
|
unsubscribe();
|
||||||
logger.debug("internal stop EventListener");
|
logger.debug("internal stop EventListener");
|
||||||
}
|
}
|
||||||
@ -347,17 +353,10 @@ public class EventListener {
|
|||||||
return subscribed;
|
return subscribed;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void subscribe(final List<String> evetNames) {
|
private void subscribe(final List<String> eventNames) {
|
||||||
final Iterator<String> eventNameIter = evetNames.iterator();
|
subscriptionScheduler = scheduler.scheduleWithFixedDelay(() -> {
|
||||||
subscriptionScheduler = scheduler.scheduleWithFixedDelay(new Runnable() {
|
eventNames.forEach(this::subscribe);
|
||||||
|
stopSubscriptionScheduler();
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
while (eventNameIter.hasNext()) {
|
|
||||||
subscribe(eventNameIter.next());
|
|
||||||
}
|
|
||||||
subscriptionScheduler.cancel(true);
|
|
||||||
}
|
|
||||||
}, 0, SUBSCRIBE_DELAY, TimeUnit.MILLISECONDS);
|
}, 0, SUBSCRIBE_DELAY, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user