Jonathan Hart

Null checking in packet-out mechanism.

If the switch has recently disconnected, we can get some NullPointerExceptions.

Change-Id: Ia5a854ed5cd6a933974c855e7297faa542626d9e
...@@ -97,7 +97,13 @@ implements PacketService, PacketProviderRegistry { ...@@ -97,7 +97,13 @@ implements PacketService, PacketProviderRegistry {
97 97
98 private void localEmit(OutboundPacket packet) { 98 private void localEmit(OutboundPacket packet) {
99 final Device device = deviceService.getDevice(packet.sendThrough()); 99 final Device device = deviceService.getDevice(packet.sendThrough());
100 +
101 + if (device == null) {
102 + return;
103 + }
104 +
100 final PacketProvider packetProvider = getProvider(device.providerId()); 105 final PacketProvider packetProvider = getProvider(device.providerId());
106 +
101 if (packetProvider != null) { 107 if (packetProvider != null) {
102 packetProvider.emit(packet); 108 packetProvider.emit(packet);
103 } 109 }
......
...@@ -95,6 +95,10 @@ public class DistributedPacketStore ...@@ -95,6 +95,10 @@ public class DistributedPacketStore
95 NodeId myId = clusterService.getLocalNode().id(); 95 NodeId myId = clusterService.getLocalNode().id();
96 NodeId master = mastershipService.getMasterFor(packet.sendThrough()); 96 NodeId master = mastershipService.getMasterFor(packet.sendThrough());
97 97
98 + if (master == null) {
99 + return;
100 + }
101 +
98 if (myId.equals(master)) { 102 if (myId.equals(master)) {
99 notifyDelegate(new PacketEvent(Type.EMIT, packet)); 103 notifyDelegate(new PacketEvent(Type.EMIT, packet));
100 return; 104 return;
......