]> git.basschouten.com Git - openhab-addons.git/commitdiff
[miio] avoid Invalid URI host: null error (#8867)
authorMarcel <marcelrv@users.noreply.github.com>
Tue, 27 Oct 2020 15:08:13 +0000 (16:08 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Oct 2020 15:08:13 +0000 (16:08 +0100)
* [miio] avoid Invalid URI host: null error

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/cloud/CloudConnector.java
bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/cloud/MiCloudConnector.java

index 731b3d86ea54fb2f58fc24ef8f4ab3d9246e0bf3..e3660dada0e203b8640c6b279da3b8f57dff550a 100644 (file)
@@ -137,14 +137,22 @@ public class CloudConnector {
             mapCountry = country.trim().toLowerCase();
             mapUrl = cl.getMapUrl(mapId, mapCountry);
         }
-        @Nullable
-        RawType mapData = HttpUtil.downloadData(mapUrl, null, false, -1);
-        if (mapData != null) {
-            return mapData;
-        } else {
-            logger.debug("Could not download '{}'", mapUrl);
+        if (mapUrl.isBlank()) {
+            logger.debug("Cannot download map data: Returned map URL is empty");
             return null;
         }
+        try {
+            RawType mapData = HttpUtil.downloadData(mapUrl, null, false, -1);
+            if (mapData != null) {
+                return mapData;
+            } else {
+                logger.debug("Could not download '{}'", mapUrl);
+                return null;
+            }
+        } catch (IllegalArgumentException e) {
+            logger.debug("Error downloading map: {}", e.getMessage());
+        }
+        return null;
     }
 
     public void setCredentials(@Nullable String username, @Nullable String password, @Nullable String country) {
index 0e446b6a73c48207a46fff19a46092a6e5644ac0..085542f11ae4314b3409a7c80481f53359f3a0f7 100644 (file)
@@ -160,7 +160,8 @@ public class MiCloudConnector {
             if (response.getAsJsonObject().has("result") && response.getAsJsonObject().get("result").isJsonObject()) {
                 JsonObject jo = response.getAsJsonObject().get("result").getAsJsonObject();
                 if (jo.has("url")) {
-                    return jo.get("url").getAsString();
+                    String mapUrl = jo.get("url").getAsString();
+                    return mapUrl != null ? mapUrl : "";
                 } else {
                     errorMsg = "Could not get url";
                 }