Fix: resolve NPE caused by non-existence of IP protocol

Change-Id: I8f2233637986089b9347da03221db2852faa7fe7
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
index 8b28797..73258ac 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/codec/TinaFlowInfoByteBufferCodec.java
@@ -41,11 +41,21 @@
     public ByteBuffer encode(FlowInfo flowInfo) {
 
         ByteBuffer byteBuffer = ByteBuffer.allocate(MESSAGE_SIZE);
+        int srcPort = 0;
+        int dstPort = 0;
 
         String  deviceId = flowInfo.deviceId().toString();
         short switchId = (short) Integer.parseInt(deviceId.substring(3,
                                                   deviceId.length()), 16);
 
+        if (flowInfo.srcPort() != null) {
+            srcPort = flowInfo.srcPort().toInt();
+        }
+
+        if (flowInfo.dstPort() != null) {
+            dstPort = flowInfo.dstPort().toInt();
+        }
+
         byteBuffer.put(flowInfo.flowType())
                 .putShort(switchId)
                 .putInt(flowInfo.inputInterfaceId())
@@ -53,10 +63,10 @@
                 .putShort(flowInfo.vlanId().toShort())
                 .put(flowInfo.srcIp().address().toOctets())
                 .put((byte) flowInfo.srcIp().prefixLength())
-                .putShort((short) flowInfo.srcPort().toInt())
+                .putShort((short) srcPort)
                 .put(flowInfo.dstIp().address().toOctets())
                 .put((byte) flowInfo.dstIp().prefixLength())
-                .putShort((short) flowInfo.dstPort().toInt())
+                .putShort((short) dstPort)
                 .put(flowInfo.protocol())
                 .put(flowInfo.srcMac().toBytes())
                 .put(flowInfo.dstMac().toBytes());