Empty lists are being squashed to nulls now, make sure we account
for this this possiblity. Fixes the following splat:
java.lang.NullPointerException: null
at org.opendaylight.protocol.bmp.impl.app.BmpRouterPeerImpl.setPeerTables(BmpRouterPeerImpl.java:262) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.app.BmpRouterPeerImpl.<init>(BmpRouterPeerImpl.java:145) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.app.BmpRouterPeerImpl.createRouterPeer(BmpRouterPeerImpl.java:168) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.app.BmpRouterImpl.onPeerUp(BmpRouterImpl.java:249) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.app.BmpRouterImpl.onMessage(BmpRouterImpl.java:122) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.session.BmpSessionImpl.handleMessage(BmpSessionImpl.java:127) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.session.BmpSessionImpl.channelRead0(BmpSessionImpl.java:50) ~[bundleFile:?]
at org.opendaylight.protocol.bmp.impl.session.BmpSessionImpl.channelRead0(BmpSessionImpl.java:33) ~[bundleFile:?]
Change-Id: I303095aa30f296f0bb77d4d11b6a31ee77494abb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
private static Set<TablesKey> setPeerTables(final ReceivedOpen open) {
final Set<TablesKey> tables = Sets.newHashSet(DEFAULT_TABLE);
private static Set<TablesKey> setPeerTables(final ReceivedOpen open) {
final Set<TablesKey> tables = Sets.newHashSet(DEFAULT_TABLE);
- for (final BgpParameters param : open.getBgpParameters()) {
- for (final OptionalCapabilities optCapa : param.getOptionalCapabilities()) {
+ for (final BgpParameters param : open.nonnullBgpParameters()) {
+ for (final OptionalCapabilities optCapa : param.nonnullOptionalCapabilities()) {
final CParameters cParam = optCapa.getCParameters();
final CParameters cParam = optCapa.getCParameters();
- if (cParam.augmentation(CParameters1.class) == null
- || cParam.augmentation(CParameters1.class).getMultiprotocolCapability() == null) {
- continue;
+ if (cParam != null) {
+ final CParameters1 augment = cParam.augmentation(CParameters1.class);
+ if (augment != null) {
+ final MultiprotocolCapability multi = augment.getMultiprotocolCapability();
+ if (multi != null) {
+ tables.add(new TablesKey(multi.getAfi(), multi.getSafi()));
+ }
+ }
- final MultiprotocolCapability multi = cParam.augmentation(CParameters1.class)
- .getMultiprotocolCapability();
- final TablesKey tt = new TablesKey(multi.getAfi(), multi.getSafi());
- tables.add(tt);