Skip to content

Commit 1d65d5c

Browse files
authored
Fixed NPE (#1419)
Added NPE invariant fixes #1418 Signed-off-by: Amit Kumar Mondal <[email protected]>
1 parent f20e309 commit 1d65d5c

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/app/discovery/ZigBeeNetworkDiscoverer.java

+11-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
*/
88
package com.zsmartsystems.zigbee.app.discovery;
99

10+
import static java.util.Objects.requireNonNull;
11+
1012
import java.util.Collections;
1113
import java.util.HashSet;
1214
import java.util.Map;
1315
import java.util.Set;
1416
import java.util.concurrent.ConcurrentHashMap;
1517
import java.util.concurrent.ExecutionException;
18+
import java.util.concurrent.Future;
1619

1720
import org.slf4j.Logger;
1821
import org.slf4j.LoggerFactory;
@@ -59,7 +62,7 @@ public class ZigBeeNetworkDiscoverer implements ZigBeeCommandListener, ZigBeeAnn
5962
/**
6063
* The ZigBee network manager.
6164
*/
62-
private ZigBeeNetworkManager networkManager;
65+
private final ZigBeeNetworkManager networkManager;
6366

6467
/**
6568
* The minimum time before performing a requery
@@ -82,6 +85,7 @@ public class ZigBeeNetworkDiscoverer implements ZigBeeCommandListener, ZigBeeAnn
8285
* @param networkManager the {@link ZigBeeNetworkManager}
8386
*/
8487
protected ZigBeeNetworkDiscoverer(final ZigBeeNetworkManager networkManager) {
88+
requireNonNull(networkManager, "Network manager cannot be null");
8589
this.networkManager = networkManager;
8690
}
8791

@@ -379,13 +383,17 @@ private boolean getIeeeAddress(final int networkAddress) throws InterruptedExcep
379383
private boolean getAssociatedNodes(final int networkAddress) throws InterruptedException, ExecutionException {
380384
Integer startIndex = 0;
381385
int totalAssociatedDevices = 0;
382-
Set<Integer> associatedDevices = new HashSet<Integer>();
386+
Set<Integer> associatedDevices = new HashSet<>();
383387

384388
do {
385389
// Request extended response, start index for associated list is 0
386390
final IeeeAddressRequest ieeeAddressRequest = new IeeeAddressRequest(networkAddress, 1, startIndex);
387391
ieeeAddressRequest.setDestinationAddress(new ZigBeeEndpointAddress(networkAddress));
388-
CommandResult response = networkManager.sendTransaction(ieeeAddressRequest, ieeeAddressRequest).get();
392+
final Future<CommandResult> resultFuture = networkManager.sendTransaction(ieeeAddressRequest, ieeeAddressRequest);
393+
if (resultFuture == null) {
394+
return false;
395+
}
396+
final CommandResult response = resultFuture.get();
389397
if (response.isError()) {
390398
return false;
391399
}

0 commit comments

Comments
 (0)