From 23b7e11dd1b53c6a20d29731d547b5cd62128de1 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sun, 5 May 2019 16:41:42 -0700 Subject: [PATCH] Fixed bugs that could occur while updating old DBs to have UUIDs --- Changelog.txt | 3 +++ pom.xml | 2 +- .../database/UUIDUpdateAsyncTask.java | 19 +++++++++++-------- .../gmail/nossr50/util/uuid/UUIDFetcher.java | 11 ++++++++--- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 6575bb900..580bb7e7c 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,6 @@ +Version 2.1.55 + Fixed a bug that could occur when adding UUIDs to old outdated DBs + Version 2.1.54 Fixed a bug where the Skill 'Understanding the Art' was preventing vanilla experience orbs from furnaces Fixed 'Understanding the Art' not correctly boosting vanilla XP from furnaces diff --git a/pom.xml b/pom.xml index e540c9396..c9980c638 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.54 + 2.1.55 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/runnables/database/UUIDUpdateAsyncTask.java b/src/main/java/com/gmail/nossr50/runnables/database/UUIDUpdateAsyncTask.java index 5719a7e80..ee5e182fa 100644 --- a/src/main/java/com/gmail/nossr50/runnables/database/UUIDUpdateAsyncTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/database/UUIDUpdateAsyncTask.java @@ -68,15 +68,18 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable { } catch (Exception e) { // Handle 429 - if (e.getMessage().contains("429")) { - size += userNamesSection.size(); - try { - Thread.sleep(LIMIT_PERIOD); - } catch (InterruptedException ex) { - e.printStackTrace(); - return; + if(e.getMessage() != null) + { + if (e.getMessage().contains("429")) { + size += userNamesSection.size(); + try { + Thread.sleep(LIMIT_PERIOD); + } catch (InterruptedException ex) { + e.printStackTrace(); + return; + } + continue; } - continue; } plugin.getLogger().log(Level.SEVERE, "Unable to fetch UUIDs!", e); diff --git a/src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java b/src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java index 7bb023707..4bdc88c26 100644 --- a/src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java +++ b/src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java @@ -1,10 +1,12 @@ package com.gmail.nossr50.util.uuid; import com.google.common.collect.ImmutableList; +import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; @@ -43,10 +45,13 @@ public class UUIDFetcher implements Callable> { array.add(element); } - String body = array.getAsString(); + Gson gson = new Gson(); + String body = array.toString(); + writeBody(connection, body); - for (Object profile : array) { - JsonObject jsonProfile = (JsonObject) profile; + JsonObject[] jsonStreamArray = gson.fromJson(new InputStreamReader(connection.getInputStream()), JsonObject[].class); + + for (JsonObject jsonProfile : jsonStreamArray) { String id = jsonProfile.get("id").getAsString(); String name = jsonProfile.get("name").getAsString(); UUID uuid = UUIDFetcher.getUUID(id);