Merge "Fixed major sonar warnings in Binding Aware Broker"
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / dom / serializer / impl / CodecMapping.java
index d05967c2c8ccdde885d595a26331f01be3127ff3..79a11ce278cc057c33b72feadd9272ec74b066b1 100644 (file)
@@ -7,9 +7,13 @@ import org.opendaylight.controller.sal.binding.dom.serializer.api.InstanceIdenti
 import org.opendaylight.yangtools.yang.binding.BindingCodec;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CodecMapping {
 
+    private static final Logger LOG = LoggerFactory.getLogger(CodecMapping.class);
+    
     public static final String INSTANCE_IDENTIFIER_CODEC = "INSTANCE_IDENTIFIER_CODEC";
     public static final String CLASS_TO_CASE_MAP = "CLASS_TO_CASE";
     public static final String COMPOSITE_TO_CASE = "COMPOSITE_TO_CASE";
@@ -19,13 +23,13 @@ public class CodecMapping {
         Field instanceIdField;
         try {
             instanceIdField = obj.getField(INSTANCE_IDENTIFIER_CODEC);
-            instanceIdField.set(null, codec);
+            if(obj != null) {
+                instanceIdField.set(null, codec);
+            }
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+           LOG.debug("Instance identifier codec is not needed for {}",obj.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Instance identifier could not be set for {}",obj.getName(),e);
         }
     }
 
@@ -36,14 +40,10 @@ public class CodecMapping {
             instanceIdField = codec.getField(CLASS_TO_CASE_MAP);
             instanceIdField.set(null, classToCaseRawCodec);
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+            LOG.debug("BUG: Class to case mappping is not needed for {}",codec.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Class to case mappping could not be set for {}",codec.getName(),e);
         }
-        
-        
     }
 
     public static void setCompositeNodeToCaseMap(Class<? extends BindingCodec<?,?>> codec,
@@ -53,11 +53,9 @@ public class CodecMapping {
             instanceIdField = codec.getField(COMPOSITE_TO_CASE);
             instanceIdField.set(null, compositeToCase);
         } catch (NoSuchFieldException e) {
-           // NOOP
-        } catch (SecurityException e) {
-            // NOOP
-        } catch (IllegalAccessException e) {
-            // NOOp
+            LOG.debug("BUG: Class to case mappping is not needed for {}",codec.getName(),e);
+        } catch (SecurityException | IllegalAccessException e) {
+            LOG.error("Composite node to case mappping could not be set for {}",codec.getName(),e);
         }
     }
 
@@ -68,11 +66,9 @@ public class CodecMapping {
                 instanceIdField = dataCodec.getField(AUGMENTATION_CODEC);
                 instanceIdField.set(null, augmentableCodec);
             } catch (NoSuchFieldException e) {
-               // NOOP
-            } catch (SecurityException e) {
-                // NOOP
-            } catch (IllegalAccessException e) {
-                // NOOp
+                LOG.debug("BUG: Augmentation codec is not needed for {}",dataCodec.getName(),e);
+            } catch (SecurityException | IllegalAccessException e) {
+                LOG.error("Augmentation codec could not be set for {}",dataCodec.getName(),e);
             }
     }
 }