Fix high priority findbugs reported issues

Fixed some code that was reporting findbugs errors

Implemented a suppression mechanism for findbugs
reported errors and a suppression file.

Change-Id: Ie8a2e84cc57ec6ddfa14d782ee89feb095b9dd59
diff --git a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
index 0058e16..f3f61f0 100644
--- a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
+++ b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
@@ -40,15 +40,15 @@
     public static final short MPLS_UNICAST = (short) 0x8847;
     public static final short MPLS_MULTICAST = (short) 0x8848;
     public static final short DATALAYER_ADDRESS_LENGTH = 6; // bytes
-    public static Map<Short, Class<? extends IPacket>> etherTypeClassMap;
+    public static final Map<Short, Class<? extends IPacket>> ETHER_TYPE_CLASS_MAP =
+        new HashMap<>();
 
     static {
-        Ethernet.etherTypeClassMap = new HashMap<Short, Class<? extends IPacket>>();
-        Ethernet.etherTypeClassMap.put(Ethernet.TYPE_ARP, ARP.class);
-        Ethernet.etherTypeClassMap.put(Ethernet.TYPE_RARP, ARP.class);
-        Ethernet.etherTypeClassMap.put(Ethernet.TYPE_IPV4, IPv4.class);
-        Ethernet.etherTypeClassMap.put(Ethernet.TYPE_LLDP, LLDP.class);
-        Ethernet.etherTypeClassMap.put(Ethernet.TYPE_BSN, LLDP.class);
+        Ethernet.ETHER_TYPE_CLASS_MAP.put(Ethernet.TYPE_ARP, ARP.class);
+        Ethernet.ETHER_TYPE_CLASS_MAP.put(Ethernet.TYPE_RARP, ARP.class);
+        Ethernet.ETHER_TYPE_CLASS_MAP.put(Ethernet.TYPE_IPV4, IPv4.class);
+        Ethernet.ETHER_TYPE_CLASS_MAP.put(Ethernet.TYPE_LLDP, LLDP.class);
+        Ethernet.ETHER_TYPE_CLASS_MAP.put(Ethernet.TYPE_BSN, LLDP.class);
     }
 
     protected MacAddress destinationMACAddress;
@@ -327,8 +327,8 @@
         this.etherType = ethType;
 
         IPacket payload;
-        if (Ethernet.etherTypeClassMap.containsKey(this.etherType)) {
-            final Class<? extends IPacket> clazz = Ethernet.etherTypeClassMap
+        if (Ethernet.ETHER_TYPE_CLASS_MAP.containsKey(this.etherType)) {
+            final Class<? extends IPacket> clazz = Ethernet.ETHER_TYPE_CLASS_MAP
                     .get(this.etherType);
             try {
                 payload = clazz.newInstance();
diff --git a/utils/misc/src/main/java/org/onlab/packet/IPv4.java b/utils/misc/src/main/java/org/onlab/packet/IPv4.java
index e54e9e7..28f6a48 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IPv4.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IPv4.java
@@ -32,10 +32,10 @@
     public static final byte PROTOCOL_ICMP = 0x1;
     public static final byte PROTOCOL_TCP = 0x6;
     public static final byte PROTOCOL_UDP = 0x11;
-    public static Map<Byte, Class<? extends IPacket>> protocolClassMap;
+    public static Map<Byte, Class<? extends IPacket>> protocolClassMap =
+            new HashMap<>();
 
     static {
-        IPv4.protocolClassMap = new HashMap<Byte, Class<? extends IPacket>>();
         IPv4.protocolClassMap.put(IPv4.PROTOCOL_ICMP, ICMP.class);
         IPv4.protocolClassMap.put(IPv4.PROTOCOL_TCP, TCP.class);
         IPv4.protocolClassMap.put(IPv4.PROTOCOL_UDP, UDP.class);
diff --git a/utils/misc/src/main/java/org/onlab/packet/ONLabLddp.java b/utils/misc/src/main/java/org/onlab/packet/ONLabLddp.java
index 4fd38cd..7978d37 100644
--- a/utils/misc/src/main/java/org/onlab/packet/ONLabLddp.java
+++ b/utils/misc/src/main/java/org/onlab/packet/ONLabLddp.java
@@ -16,6 +16,7 @@
 package org.onlab.packet;
 
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
@@ -68,7 +69,7 @@
     // Contents of full name TLV
     private static final byte[] NAME_TLV = ByteBuffer.allocate(NAME_TLV_SIZE + 2)
             .putShort(NAME_TLV_HEADER).put(ONLAB_OUI).put(NAME_TLV_SUBTYPE)
-            .put(OVX_NAME.getBytes()).array();
+            .put(OVX_NAME.getBytes(StandardCharsets.UTF_8)).array();
 
     private static final byte DPID_TLV_TYPE = 127;
     private static final byte DPID_TLV_SIZE = (byte) (12); // 12 = OUI (3) + subtype
@@ -203,7 +204,7 @@
         this.bb = ByteBuffer.wrap(ouiName);
         this.bb.put(ONLabLddp.ONLAB_OUI);
         this.bb.put(NAME_TLV_SUBTYPE);
-        this.bb.put(name.getBytes());
+        this.bb.put(name.getBytes(StandardCharsets.UTF_8));
 
         this.ouiNameTLV.setLength(NAME_TLV_SIZE);
         this.ouiNameTLV.setType(NAME_TLV_TYPE);
diff --git a/utils/misc/src/main/java/org/onlab/packet/ONOSLLDP.java b/utils/misc/src/main/java/org/onlab/packet/ONOSLLDP.java
index 0b33c45..5b3902a 100644
--- a/utils/misc/src/main/java/org/onlab/packet/ONOSLLDP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/ONOSLLDP.java
@@ -19,6 +19,7 @@
 import org.apache.commons.lang.ArrayUtils;
 
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 
 /**
  *  ONOS LLDP containing organizational TLV for ONOS device dicovery.
@@ -141,7 +142,7 @@
     public String getNameString() {
         LLDPOrganizationalTLV tlv = getNameTLV();
         if (tlv != null) {
-            return new String(tlv.getInfoString());
+            return new String(tlv.getInfoString(), StandardCharsets.UTF_8);
         }
         return null;
     }
@@ -149,7 +150,7 @@
     public String getDeviceString() {
         LLDPOrganizationalTLV tlv = getDeviceTLV();
         if (tlv != null) {
-            return new String(tlv.getInfoString());
+            return new String(tlv.getInfoString(), StandardCharsets.UTF_8);
         }
         return null;
     }
diff --git a/utils/misc/src/main/java/org/onlab/packet/UDP.java b/utils/misc/src/main/java/org/onlab/packet/UDP.java
index 73a196a..19e23c0 100644
--- a/utils/misc/src/main/java/org/onlab/packet/UDP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/UDP.java
@@ -27,18 +27,18 @@
  */
 
 public class UDP extends BasePacket {
-    public static Map<Short, Class<? extends IPacket>> decodeMap;
+    public static final Map<Short, Class<? extends IPacket>> DECODE_MAP =
+            new HashMap<>();
     public static final short DHCP_SERVER_PORT = (short) 67;
     public static final short DHCP_CLIENT_PORT = (short) 68;
 
     static {
-        UDP.decodeMap = new HashMap<Short, Class<? extends IPacket>>();
         /*
          * Disable DHCP until the deserialize code is hardened to deal with
          * garbage input
          */
-        UDP.decodeMap.put(UDP.DHCP_SERVER_PORT, DHCP.class);
-        UDP.decodeMap.put(UDP.DHCP_CLIENT_PORT, DHCP.class);
+        UDP.DECODE_MAP.put(UDP.DHCP_SERVER_PORT, DHCP.class);
+        UDP.DECODE_MAP.put(UDP.DHCP_CLIENT_PORT, DHCP.class);
 
     }
 
@@ -231,16 +231,16 @@
         this.length = bb.getShort();
         this.checksum = bb.getShort();
 
-        if (UDP.decodeMap.containsKey(this.destinationPort)) {
+        if (UDP.DECODE_MAP.containsKey(this.destinationPort)) {
             try {
-                this.payload = UDP.decodeMap.get(this.destinationPort)
+                this.payload = UDP.DECODE_MAP.get(this.destinationPort)
                         .getConstructor().newInstance();
             } catch (final Exception e) {
                 throw new RuntimeException("Failure instantiating class", e);
             }
-        } else if (UDP.decodeMap.containsKey(this.sourcePort)) {
+        } else if (UDP.DECODE_MAP.containsKey(this.sourcePort)) {
             try {
-                this.payload = UDP.decodeMap.get(this.sourcePort)
+                this.payload = UDP.DECODE_MAP.get(this.sourcePort)
                         .getConstructor().newInstance();
             } catch (final Exception e) {
                 throw new RuntimeException("Failure instantiating class", e);