From: Michal Rehak Date: Fri, 4 Jul 2014 16:44:33 +0000 (+0200) Subject: BUG-1274 OF issue with datapath-id X-Git-Tag: release/helium~531^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=0d4fe64b378dee687147908ee866f5d2931c8dda BUG-1274 OF issue with datapath-id - replaced Long with BigInteger in order to capture value greater then maxLong - added unit test for that Change-Id: I17d8b0c54c5c084d428883f33aa0972e3dd986ed Signed-off-by: Michal Rehak --- diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java index a700c86b9c..02964c6d55 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/NodeMapping.java @@ -11,6 +11,7 @@ import java.math.BigInteger; import java.util.Date; import java.util.HashSet; import java.util.List; + import org.opendaylight.controller.sal.common.util.Arguments; import org.opendaylight.controller.sal.core.AdvertisedBandwidth; import org.opendaylight.controller.sal.core.Bandwidth; @@ -61,6 +62,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -94,13 +96,14 @@ public final class NodeMapping { /** * @param adNodeId - * @return + * @return nodeId as long */ - private static Long openflowFullNodeIdToLong(String adNodeId) { + @VisibleForTesting + public static Long openflowFullNodeIdToLong(String adNodeId) { if (adNodeId == null) { return null; } - return Long.valueOf(adNodeId.replaceFirst("^.*:", "")); + return new BigInteger(adNodeId.replaceFirst("^.*:", "")).longValue(); } public static NodeId toNodeId(final InstanceIdentifier id) { diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/NodeMappingTest.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/NodeMappingTest.java index 8a23ebc933..cef7ae7a42 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/NodeMappingTest.java +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/NodeMappingTest.java @@ -174,6 +174,18 @@ public class NodeMappingTest { Assert.assertEquals("openflow:1", observedNodeConnectorId); } + /** + * Test method for + * {@link org.opendaylight.controller.sal.compatibility.NodeMapping#openflowFullNodeIdToLong(String)} + * . + * @throws ConstructionException + */ + @Test + public void testOpenflowFullNodeIdToLong() throws ConstructionException { + Assert.assertEquals(42L, NodeMapping.openflowFullNodeIdToLong("42").longValue()); + Assert.assertEquals(0xCC4E241C4A000000L, NodeMapping.openflowFullNodeIdToLong("14721743935839928320").longValue()); + } + /** * @param nodeId * @param portId