From 7c72eec8f929d4a8d625ae6fedbaf38130070945 Mon Sep 17 00:00:00 2001 From: JemyCheung Date: Thu, 24 Oct 2019 10:35:50 +0800 Subject: [PATCH] buildfromjson func --- .../src/main/java/com/qiniu/android/common/AutoZone.java | 2 ++ .../src/main/java/com/qiniu/android/common/ZoneInfo.java | 6 ++++++ .../src/main/java/com/qiniu/android/http/DnsPrefetcher.java | 2 ++ 3 files changed, 10 insertions(+) diff --git a/library/src/main/java/com/qiniu/android/common/AutoZone.java b/library/src/main/java/com/qiniu/android/common/AutoZone.java index fccc22d92..9a0468487 100644 --- a/library/src/main/java/com/qiniu/android/common/AutoZone.java +++ b/library/src/main/java/com/qiniu/android/common/AutoZone.java @@ -125,6 +125,8 @@ boolean preQueryIndex(final ZoneIndex index) { } else { try { ResponseInfo responseInfo = getZoneJsonSync(index); + if (responseInfo.response == null) + return false; ZoneInfo info2 = ZoneInfo.buildFromJson(responseInfo.response); zones.put(index, info2); success = true; diff --git a/library/src/main/java/com/qiniu/android/common/ZoneInfo.java b/library/src/main/java/com/qiniu/android/common/ZoneInfo.java index 2e2fd72c3..5a8c05f4a 100644 --- a/library/src/main/java/com/qiniu/android/common/ZoneInfo.java +++ b/library/src/main/java/com/qiniu/android/common/ZoneInfo.java @@ -28,6 +28,12 @@ public ZoneInfo(int ttl, List upDomainsList, Map upDomains this.upDomainsMap = upDomainsMap; } + /** + * + * @param obj Not allowed to be null + * @return + * @throws JSONException + */ public static ZoneInfo buildFromJson(JSONObject obj) throws JSONException { int ttl = obj.getInt("ttl"); List domainsList = new ArrayList<>(); diff --git a/library/src/main/java/com/qiniu/android/http/DnsPrefetcher.java b/library/src/main/java/com/qiniu/android/http/DnsPrefetcher.java index 8d60b8aac..fe27293a6 100644 --- a/library/src/main/java/com/qiniu/android/http/DnsPrefetcher.java +++ b/library/src/main/java/com/qiniu/android/http/DnsPrefetcher.java @@ -202,6 +202,8 @@ ZoneInfo preQueryIndex(DnsPrefetcher.ZoneIndex index) { ZoneInfo info = null; try { ResponseInfo responseInfo = getZoneJsonSync(index); + if (responseInfo.response == null) + return null; info = ZoneInfo.buildFromJson(responseInfo.response); } catch (JSONException e) { e.printStackTrace();