Added warn log on same key registration 73/10773/2
authorMichal Polkorab <michal.polkorab@pantheon.sk>
Tue, 22 Jul 2014 12:25:27 +0000 (14:25 +0200)
committerMichal Polkorab <michal.polkorab@pantheon.sk>
Thu, 4 Sep 2014 12:57:56 +0000 (14:57 +0200)
Change-Id: I7a42f674fa1e2fa4c027a480884ba785b6264646
Signed-off-by: Michal Polkorab <michal.polkorab@pantheon.sk>
openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistry.java
openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistry.java
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializerRegistryImpl.java
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializerRegistryImpl.java

index 4afa95aec89ff05d9a4eb524d1165f2da9a4b8dc..26ac8c8bb0b3e0333df24d71d4cf78c84e59f10d 100644 (file)
@@ -27,7 +27,13 @@ public interface DeserializerRegistry {
             SERIALIZER_TYPE getDeserializer(MessageCodeKey key);\r
 \r
     /**\r
-     * Registers deserializer\r
+     * Registers deserializer.\r
+     * Throws IllegalStateException when there is\r
+     * a deserializer already registered under given key.\r
+     * \r
+     * If the deserializer implements {@link DeserializerRegistryInjector} interface,\r
+     * the deserializer is injected with DeserializerRegistry instance.\r
+     * \r
      * @param key used for deserializer lookup\r
      * @param deserializer deserializer instance\r
      */\r
index bf25a60953bfa573d67562473c6d90c3775dd9df..388338e2864f5977a9a25b18eac6860b9dd684a7 100644 (file)
@@ -31,6 +31,12 @@ public interface SerializerRegistry {
 \r
     /**\r
      * Registers serializer\r
+     * Throws IllegalStateException when there is\r
+     * a serializer already registered under given key.\r
+     * \r
+     * If the serializer implements {@link SerializerRegistryInjector} interface,\r
+     * the serializer is injected with SerializerRegistry instance.\r
+     * \r
      * @param key used for serializer lookup\r
      * @param serializer serializer implementation\r
      */\r
index a1efd1dc37a763154886e56b05dd4c96d1c3abbe..9709d6fa9b1594036ce8238a2933e9185a4c5bb2 100644 (file)
@@ -20,6 +20,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.MatchDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.OF10MatchDeserializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Stores and registers deserializers
@@ -27,6 +29,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.matc
  */
 public class DeserializerRegistryImpl implements DeserializerRegistry {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(DeserializerRegistryImpl.class);
     private Map<MessageCodeKey, OFGeneralDeserializer> registry;
 
     /**
@@ -70,10 +73,15 @@ public class DeserializerRegistryImpl implements DeserializerRegistry {
         if ((key == null) || (deserializer == null)) {
             throw new IllegalArgumentException("MessageCodeKey or Deserializer is null");
         }
+        OFGeneralDeserializer desInRegistry = registry.put(key, deserializer);
+        if (desInRegistry != null) {
+            LOGGER.warn("Deserializer for key " + key + " overwritten. Old deserializer: "
+                    + desInRegistry.getClass().getName() + ", new deserializer: "
+                    + deserializer.getClass().getName() );
+        }
         if (deserializer instanceof DeserializerRegistryInjector) {
             ((DeserializerRegistryInjector) deserializer).injectDeserializerRegistry(this);
         }
-        registry.put(key, deserializer);
     }
 
     @Override
index e8a02bd78e4811743f2f74e7606d2277c5e24e4e..fe2c4cf6c3bc3d38b396b32e84cc6c7b989b433a 100644 (file)
@@ -20,6 +20,8 @@ import org.opendaylight.openflowjava.protocol.impl.util.OF10MatchSerializer;
 import org.opendaylight.openflowjava.protocol.impl.util.OF13MatchSerializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Stores and handles serializers
@@ -28,6 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.matc
  */
 public class SerializerRegistryImpl implements SerializerRegistry {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(SerializerRegistryImpl.class);
     private static final short OF10 = EncodeConstants.OF10_VERSION_ID;
     private static final short OF13 = EncodeConstants.OF13_VERSION_ID;
     private Map<MessageTypeKey<?>, OFGeneralSerializer> registry;
@@ -74,10 +77,15 @@ public class SerializerRegistryImpl implements SerializerRegistry {
         if ((msgTypeKey == null) || (serializer == null)) {
             throw new IllegalArgumentException("MessageTypeKey or Serializer is null");
         }
+        OFGeneralSerializer serInRegistry = registry.put(msgTypeKey, serializer);
+        if (serInRegistry != null) {
+            LOGGER.warn("Serializer for key " + msgTypeKey + " overwritten. Old serializer: "
+                    + serInRegistry.getClass().getName() + ", new serializer: "
+                    + serializer.getClass().getName() );
+        }
         if (serializer instanceof SerializerRegistryInjector) {
             ((SerializerRegistryInjector) serializer).injectSerializerRegistry(this);
         }
-        registry.put(msgTypeKey, serializer);
     }
 
     @Override