public void initialize() {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_PENDING, "trying to connect to gateway...");
- ScheduledFuture<?> localConnectorTask = connectorTask;
- if (localConnectorTask == null || localConnectorTask.isDone()) {
- localConnectorTask = scheduler.scheduleWithFixedDelay(new Runnable() {
- @Override
- public void run() {
- if (thing.getStatus() != ThingStatus.ONLINE) {
- initTransceiver();
- }
+ connectorTask = scheduler.scheduleWithFixedDelay(new Runnable() {
+ @Override
+ public void run() {
+ if (thing.getStatus() != ThingStatus.ONLINE) {
+ initTransceiver();
}
- }, 0, 60, TimeUnit.SECONDS);
- }
+ }
+ }, 0, 60, TimeUnit.SECONDS);
}
private synchronized void initTransceiver() {
@Override
public synchronized void dispose() {
- EnOceanTransceiver localTransceiver = transceiver;
- if (localTransceiver != null) {
- localTransceiver.shutDown();
- transceiver = null;
+ EnOceanTransceiver transceiver = this.transceiver;
+ if (transceiver != null) {
+ transceiver.shutDown();
+ this.transceiver = null;
}
- ScheduledFuture<?> localConnectorTask = connectorTask;
- if (localConnectorTask != null && !localConnectorTask.isDone()) {
- localConnectorTask.cancel(true);
- connectorTask = null;
+ ScheduledFuture<?> connectorTask = this.connectorTask;
+ if (connectorTask != null) {
+ connectorTask.cancel(true);
+ this.connectorTask = null;
}
super.dispose();
// Thread management
protected @Nullable Future<?> readingTask = null;
- private @Nullable Future<?> timeOut = null;
+ private @Nullable Future<?> timeOutTask = null;
protected Logger logger = LoggerFactory.getLogger(EnOceanTransceiver.class);
localOutPutStream.write(b);
localOutPutStream.flush();
}
- Future<?> localTimeOut = timeOut;
- if (localTimeOut != null) {
- localTimeOut.cancel(true);
+ Future<?> localTimeOutTask = timeOutTask;
+ if (localTimeOutTask != null) {
+ localTimeOutTask.cancel(true);
}
// slowdown sending of message to avoid hickups at receivers
// Todo tweak sending intervall (250 ist just a first try)
- timeOut = scheduler.schedule(() -> {
+ timeOutTask = scheduler.schedule(() -> {
try {
sendNext();
} catch (IOException e) {
public void startReceiving(ScheduledExecutorService scheduler) {
@Nullable
- Future<?> localReadingTask = readingTask;
- if (localReadingTask == null || localReadingTask.isCancelled()) {
- readingTask = scheduler.submit(new Runnable() {
+ Future<?> readingTask = this.readingTask;
+ if (readingTask == null || readingTask.isCancelled()) {
+ this.readingTask = scheduler.submit(new Runnable() {
@Override
public void run() {
receivePackets();
logger.debug("shutting down transceiver");
logger.debug("Interrupt rx Thread");
- Future<?> localTimeOut = timeOut;
- if (localTimeOut != null) {
- localTimeOut.cancel(true);
+ Future<?> timeOutTask = this.timeOutTask;
+ if (timeOutTask != null) {
+ timeOutTask.cancel(true);
+ this.timeOutTask = null;
}
- Future<?> localReadingTask = readingTask;
- if (localReadingTask != null) {
- localReadingTask.cancel(true);
+ Future<?> readingTask = this.readingTask;
+ if (readingTask != null) {
+ readingTask.cancel(true);
InputStream localInputStream = inputStream;
if (localInputStream != null) {
logger.debug("IOException occured while closing the stream", e);
}
}
+ this.readingTask = null;
}
- readingTask = null;
- timeOut = null;
listeners.clear();
eventListeners.clear();
teachInListener = null;
private void receivePackets() {
byte[] buffer = new byte[1];
- Future<?> localReadingTask = readingTask;
- while (localReadingTask != null && !localReadingTask.isCancelled()) {
+ Future<?> readingTask = this.readingTask;
+ while (readingTask != null && !readingTask.isCancelled()) {
int bytesRead = read(buffer, 1);
if (bytesRead > 0) {
processMessage(buffer[0]);
}
} else {
logger.warn("Cannot read from null stream");
- Future<?> localReadingTask = readingTask;
- if (localReadingTask != null) {
- localReadingTask.cancel(true);
- readingTask = null;
+ Future<?> readingTask = this.readingTask;
+ if (readingTask != null) {
+ readingTask.cancel(true);
+ this.readingTask = null;
}
TransceiverErrorListener localListener = errorListener;
if (localListener != null) {