patch so map reply serialization won't break map request serialization 30/6230/1
authorDavid Goldberg <david.goldberg@contextream.com>
Wed, 16 Apr 2014 10:56:13 +0000 (13:56 +0300)
committerDavid Goldberg <david.goldberg@contextream.com>
Wed, 16 Apr 2014 10:57:04 +0000 (13:57 +0300)
Change-Id: I4d2d917bf89a588b8843403285b31f5c4d800f91
Signed-off-by: David Goldberg <david.goldberg@contextream.com>
mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/serializer/MapRequestSerializer.java

index c0872e083d896e04a68b471edb9eb534d9c5d1d1..550d328ac85e2d154c03a627ec826708d79e1247 100644 (file)
@@ -25,6 +25,8 @@ import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.ItrRloc
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.MapReplyBuilder;
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.SourceEidBuilder;
 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequestnotification.MapRequestBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This class deals with deserializing map request from udp to the java object.
@@ -32,6 +34,7 @@ import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequestnotifica
 public class MapRequestSerializer {
 
     private static final MapRequestSerializer INSTANCE = new MapRequestSerializer();
+    protected static final Logger logger = LoggerFactory.getLogger(MapRequestSerializer.class);
 
     // Private constructor prevents instantiation from other classes
     private MapRequestSerializer() {
@@ -150,7 +153,11 @@ public class MapRequestSerializer {
                 builder.getEidRecord().add(EidRecordSerializer.getInstance().deserialize(requestBuffer));
             }
             if (builder.isMapDataPresent() && requestBuffer.hasRemaining()) {
-                builder.setMapReply(new MapReplyBuilder(MapReplySerializer.getInstance().deserialize(requestBuffer)).build());
+                try {
+                    builder.setMapReply(new MapReplyBuilder(MapReplySerializer.getInstance().deserialize(requestBuffer)).build());
+                } catch (RuntimeException re) {
+                    logger.warn("couldn't deserialize map reply encapsulated in map request. {}", re.getMessage());
+                }
             }
             return builder.build();
         } catch (RuntimeException re) {