Bug 4863 - BMP: PeerUp Notification serializer bugs 78/32278/1
authorMilos Fabian <milfabia@cisco.com>
Mon, 4 Jan 2016 08:32:10 +0000 (09:32 +0100)
committerMilos Fabian <milfabia@cisco.com>
Fri, 8 Jan 2016 13:05:51 +0000 (14:05 +0100)
-fix NPE for optional Information TLV
-fix Sent/Received Open Message encoding order

Change-Id: I9de38b02b0b105b4828aaa140fa5f5861fa5d56e
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/PeerUpHandler.java

index 23a2e3f2e9824d1474e63f582414a5fabc7c6eb8..88e67eed7bcb1273b5c694d71c2b799655b73768 100644 (file)
@@ -65,13 +65,13 @@ public class PeerUpHandler extends AbstractBmpPerPeerMessageParser<InformationBu
         ByteBufWriteUtil.writeUnsignedShort(peerUp.getLocalPort().getValue(), buffer);
         ByteBufWriteUtil.writeUnsignedShort(peerUp.getRemotePort().getValue(), buffer);
 
-        getBgpMessageRegistry().serializeMessage(new OpenBuilder(peerUp.getReceivedOpen()).build(), buffer);
         getBgpMessageRegistry().serializeMessage(new OpenBuilder(peerUp.getSentOpen()).build(), buffer);
+        getBgpMessageRegistry().serializeMessage(new OpenBuilder(peerUp.getReceivedOpen()).build(), buffer);
         serializeTlvs(peerUp.getInformation(), buffer);
     }
 
     private void serializeTlvs(final Information tlvs, final ByteBuf output) {
-        if (tlvs.getStringInformation() != null) {
+        if (tlvs != null && tlvs.getStringInformation() != null) {
             for (final StringInformation stringInfo : tlvs.getStringInformation()) {
                 if (stringInfo.getStringTlv() != null) {
                     serializeTlv(stringInfo.getStringTlv(), output);