Skip to content

Commit 0dabfb6

Browse files
committed
Fixed NPE
Added NPE invariant fixes #1418 Signed-off-by: Amit Kumar Mondal <[email protected]>
1 parent f20e309 commit 0dabfb6

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

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

+12-2
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

@@ -385,8 +389,14 @@ private boolean getAssociatedNodes(final int networkAddress) throws InterruptedE
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+
Future<CommandResult> resultFuture = networkManager.sendTransaction(ieeeAddressRequest, ieeeAddressRequest);
393+
if (resultFuture == null) {
394+
logger.debug("Transaction manager has been shutdown");
395+
return false;
396+
}
397+
CommandResult response = resultFuture.get();
389398
if (response.isError()) {
399+
logger.debug("Transaction command has not been successful");
390400
return false;
391401
}
392402

0 commit comments

Comments
 (0)