Committed by
Gerrit Code Review
Fixed a potential NPE in link discovery.
Change-Id: I3bff307e54a1e3bdac1053dfea6e96ae3cd29f07
Showing
1 changed file
with
16 additions
and
11 deletions
... | @@ -40,6 +40,7 @@ import org.slf4j.Logger; | ... | @@ -40,6 +40,7 @@ import org.slf4j.Logger; |
40 | import java.nio.ByteBuffer; | 40 | import java.nio.ByteBuffer; |
41 | import java.util.Set; | 41 | import java.util.Set; |
42 | 42 | ||
43 | +import static com.google.common.base.Strings.isNullOrEmpty; | ||
43 | import static java.util.concurrent.TimeUnit.MILLISECONDS; | 44 | import static java.util.concurrent.TimeUnit.MILLISECONDS; |
44 | import static org.onosproject.net.PortNumber.portNumber; | 45 | import static org.onosproject.net.PortNumber.portNumber; |
45 | import static org.onosproject.net.flow.DefaultTrafficTreatment.builder; | 46 | import static org.onosproject.net.flow.DefaultTrafficTreatment.builder; |
... | @@ -165,20 +166,24 @@ public class LinkDiscovery implements TimerTask { | ... | @@ -165,20 +166,24 @@ public class LinkDiscovery implements TimerTask { |
165 | 166 | ||
166 | PortNumber srcPort = portNumber(onoslldp.getPort()); | 167 | PortNumber srcPort = portNumber(onoslldp.getPort()); |
167 | PortNumber dstPort = packetContext.inPacket().receivedFrom().port(); | 168 | PortNumber dstPort = packetContext.inPacket().receivedFrom().port(); |
168 | - DeviceId srcDeviceId = DeviceId.deviceId(onoslldp.getDeviceString()); | ||
169 | - DeviceId dstDeviceId = packetContext.inPacket().receivedFrom().deviceId(); | ||
170 | 169 | ||
171 | - ConnectPoint src = new ConnectPoint(srcDeviceId, srcPort); | 170 | + String idString = onoslldp.getDeviceString(); |
172 | - ConnectPoint dst = new ConnectPoint(dstDeviceId, dstPort); | 171 | + if (!isNullOrEmpty(idString)) { |
173 | - | 172 | + DeviceId srcDeviceId = DeviceId.deviceId(idString); |
174 | - LinkDescription ld = new DefaultLinkDescription(src, dst, lt); | 173 | + DeviceId dstDeviceId = packetContext.inPacket().receivedFrom().deviceId(); |
175 | - try { | 174 | + |
176 | - context.providerService().linkDetected(ld); | 175 | + ConnectPoint src = new ConnectPoint(srcDeviceId, srcPort); |
177 | - context.touchLink(LinkKey.linkKey(src, dst)); | 176 | + ConnectPoint dst = new ConnectPoint(dstDeviceId, dstPort); |
178 | - } catch (IllegalStateException e) { | 177 | + |
178 | + LinkDescription ld = new DefaultLinkDescription(src, dst, lt); | ||
179 | + try { | ||
180 | + context.providerService().linkDetected(ld); | ||
181 | + context.touchLink(LinkKey.linkKey(src, dst)); | ||
182 | + } catch (IllegalStateException e) { | ||
183 | + return true; | ||
184 | + } | ||
179 | return true; | 185 | return true; |
180 | } | 186 | } |
181 | - return true; | ||
182 | } | 187 | } |
183 | return false; | 188 | return false; |
184 | } | 189 | } | ... | ... |
-
Please register or login to post a comment