Clean up handling of lat/long geo-coordinates.
Change-Id: I64fca56c7deb9a8baa6c68558365ec2a8c38168c
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
index 872a099..985cb17 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
@@ -31,7 +31,6 @@
import org.onosproject.incubator.net.tunnel.Tunnel;
import org.onosproject.incubator.net.tunnel.TunnelService;
import org.onosproject.mastership.MastershipService;
-import org.onosproject.net.ElementId;
import org.onosproject.net.Annotated;
import org.onosproject.net.AnnotationKeys;
import org.onosproject.net.Annotations;
@@ -40,6 +39,7 @@
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.EdgeLink;
+import org.onosproject.net.ElementId;
import org.onosproject.net.Host;
import org.onosproject.net.HostId;
import org.onosproject.net.HostLocation;
@@ -77,8 +77,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.Optional;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -94,6 +94,8 @@
*/
public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
+ private static final String NO_GEO_VALUE = "0.0";
+
// default to an "add" event...
private static final DefaultHashMap<ClusterEvent.Type, String> CLUSTER_EVENT =
new DefaultHashMap<>("addInstance");
@@ -361,10 +363,10 @@
String slng = annotations.value(AnnotationKeys.LONGITUDE);
String slat = annotations.value(AnnotationKeys.LATITUDE);
- boolean haveLng = slng != null && !slng.isEmpty();
- boolean haveLat = slat != null && !slat.isEmpty();
- try {
- if (haveLng && haveLat) {
+ boolean validLng = slng != null && !slng.equals(NO_GEO_VALUE);
+ boolean validLat = slat != null && !slat.equals(NO_GEO_VALUE);
+ if (validLat && validLng) {
+ try {
double lng = Double.parseDouble(slng);
double lat = Double.parseDouble(slat);
ObjectNode loc = objectNode()
@@ -372,11 +374,9 @@
.put("lng", lng)
.put("lat", lat);
payload.set("location", loc);
- } else {
- log.trace("missing Lng/Lat: lng={}, lat={}", slng, slat);
+ } catch (NumberFormatException e) {
+ log.warn("Invalid geo data: longitude={}, latitude={}", slng, slat);
}
- } catch (NumberFormatException e) {
- log.warn("Invalid geo data: longitude={}, latitude={}", slng, slat);
}
}