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();