diff --git a/pcep/pcepio/src/test/java/org/onosproject/pcepio/RouterIDSubTlvTest.java b/pcep/pcepio/src/test/java/org/onosproject/pcepio/RouterIDSubTlvTest.java
index 95d143f..022fd41 100644
--- a/pcep/pcepio/src/test/java/org/onosproject/pcepio/RouterIDSubTlvTest.java
+++ b/pcep/pcepio/src/test/java/org/onosproject/pcepio/RouterIDSubTlvTest.java
@@ -26,14 +26,14 @@
 public class RouterIDSubTlvTest {
 
     private final byte[] value1 = {1, 2 };
-    private final Short length1 = new Short((short) 2);
+    private final Short length1 = 2;
     private final RouterIDSubTlv tlv1 = RouterIDSubTlv.of(value1, length1);
 
-    private final Short length2 = new Short((short) 2);
+    private final Short length2 = 2;
     private final RouterIDSubTlv tlv2 = RouterIDSubTlv.of(value1, length2);
 
     private final byte[] value3 = {1, 2, 3 };
-    private final Short length3 = new Short((short) 3);
+    private final Short length3 = 3;
     private final RouterIDSubTlv tlv3 = RouterIDSubTlv.of(value3, length3);
 
     @Test
diff --git a/pcep/pcepio/src/test/java/org/onosproject/pcepio/SharedRiskLinkGroupTlvTest.java b/pcep/pcepio/src/test/java/org/onosproject/pcepio/SharedRiskLinkGroupTlvTest.java
index b09deb5..ad62f61 100644
--- a/pcep/pcepio/src/test/java/org/onosproject/pcepio/SharedRiskLinkGroupTlvTest.java
+++ b/pcep/pcepio/src/test/java/org/onosproject/pcepio/SharedRiskLinkGroupTlvTest.java
@@ -26,13 +26,13 @@
 public class SharedRiskLinkGroupTlvTest {
 
     private final int[] raw = {1 };
-    private final Short hLength = new Short((short) 2);
+    private final Short hLength = 2;
     private final SharedRiskLinkGroupTlv tlv1 = SharedRiskLinkGroupTlv.of(raw, hLength);
 
     private final SharedRiskLinkGroupTlv sameAsTlv1 = SharedRiskLinkGroupTlv.of(raw, hLength);
 
     private final int[] raw2 = {2 };
-    private final Short hLength2 = new Short((short) 3);
+    private final Short hLength2 = 3;
     private final SharedRiskLinkGroupTlv tlv2 = SharedRiskLinkGroupTlv.of(raw2, hLength2);
 
     @Test
diff --git a/pcep/pcepio/src/test/java/org/onosproject/pcepio/SymbolicPathNameTlvTest.java b/pcep/pcepio/src/test/java/org/onosproject/pcepio/SymbolicPathNameTlvTest.java
index 0b71bc5..718bbb6 100644
--- a/pcep/pcepio/src/test/java/org/onosproject/pcepio/SymbolicPathNameTlvTest.java
+++ b/pcep/pcepio/src/test/java/org/onosproject/pcepio/SymbolicPathNameTlvTest.java
@@ -26,15 +26,15 @@
 public class SymbolicPathNameTlvTest {
 
     private final byte[] value1 = {0x41 };
-    private final Short length1 = new Short((short) 2);
+    private final Short length1 = 2;
     private final SymbolicPathNameTlv tlv1 = SymbolicPathNameTlv.of(value1, length1);
 
     private final byte[] value2 = {0x41 };
-    private final Short length2 = new Short((short) 2);
+    private final Short length2 = 2;
     private final SymbolicPathNameTlv tlv2 = SymbolicPathNameTlv.of(value1, length2);
 
     private final byte[] value3 = {0x41, 0x43 };
-    private final Short length3 = new Short((short) 3);
+    private final Short length3 = 3;
     private final SymbolicPathNameTlv tlv3 = SymbolicPathNameTlv.of(value3, length3);
 
     @Test
