diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
index a666afe..daf7a50 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorInfoVer1.java
@@ -51,7 +51,7 @@
     public PcepErrorInfoVer1(LinkedList<PcepRPObject> llRPObjList, LinkedList<PcepTEObject> llTEObjList,
             LinkedList<PcepErrorObject> llErrObjList) {
         this.errList = new LinkedList<PcepError>();
-        if ((null != llErrObjList) && (!llErrObjList.isEmpty())) {
+        if ((llErrObjList != null) && (!llErrObjList.isEmpty())) {
             this.errList.add(new PcepErrorVer1(llRPObjList, llTEObjList, llErrObjList));
         }
     }
diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
index fbbba27..984418f 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepErrorMsgVer1.java
@@ -163,7 +163,7 @@
                 this.errInfo = new PcepErrorInfoVer1(null, null, llErrObjList);
                 this.errInfo.read(cb);
 
-            } else if ((null != llErrObjList) && (!llErrObjList.isEmpty())) {
+            } else if ((llErrObjList != null) && (!llErrObjList.isEmpty())) {
                 //If only PCEP-ERROR list is present then store it in errObjListWithOpen.
                 this.errObjListWithOpen = new ErrorObjListWithOpen(llErrObjList);
             } else {
