From ccf40c722bc554890c28fd1b0d82e8ea48c94e48 Mon Sep 17 00:00:00 2001 From: Sho SHIMIZU Date: Thu, 11 Jun 2015 16:55:20 -0700 Subject: [PATCH] Fix bug that inconsistency happens in long value and name in PortNumber The case is like the underlying name is "2", but long value is 0. This fix relates to ONOS-2082. Change-Id: I702ed91563296d38980dc6895fafb18aecaa26f8 --- .../org/onosproject/rest/resources/ConfigProvider.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ConfigProvider.java b/web/api/src/main/java/org/onosproject/rest/resources/ConfigProvider.java index 2716354236..13516bd789 100644 --- a/web/api/src/main/java/org/onosproject/rest/resources/ConfigProvider.java +++ b/web/api/src/main/java/org/onosproject/rest/resources/ConfigProvider.java @@ -517,13 +517,20 @@ class ConfigProvider implements DeviceProvider, LinkProvider, HostProvider { String portName = text.substring(i + 1); DeviceId deviceId = deviceId(text.substring(0, i)); - long portNum = 0L; for (Port port : deviceService.getPorts(deviceId)) { PortNumber pn = port.number(); if (pn.name().equals(portName)) { return new ConnectPoint(deviceId, pn); } } + + long portNum; + try { + portNum = Long.parseLong(portName); + } catch (NumberFormatException e) { + portNum = 0; + } + return new ConnectPoint(deviceId, portNumber(portNum, portName)); }