From 18b96944e9a4b91357c3484245cac0e293b77579 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 21 Aug 2022 11:49:38 +0100 Subject: [PATCH] Tweak migrator to ensure safe user setting on large data imports --- .../net/william278/husksync/migrator/LegacyMigrator.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java b/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java index 231441a5..d6ed11a5 100644 --- a/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java +++ b/bukkit/src/main/java/net/william278/husksync/migrator/LegacyMigrator.java @@ -75,7 +75,8 @@ public class LegacyMigrator extends Migrator { SELECT `uuid`, `username`, `inventory`, `ender_chest`, `health`, `max_health`, `health_scale`, `hunger`, `saturation`, `saturation_exhaustion`, `selected_slot`, `status_effects`, `total_experience`, `exp_level`, `exp_progress`, `game_mode`, `statistics`, `is_flying`, `advancements`, `location` FROM `%source_players_table%` INNER JOIN `%source_data_table%` - ON `%source_players_table%`.`id` = `%source_data_table%`.`player_id`; + ON `%source_players_table%`.`id` = `%source_data_table%`.`player_id` + WHERE `username` IS NOT NULL; """.replaceAll(Pattern.quote("%source_players_table%"), sourcePlayersTable) .replaceAll(Pattern.quote("%source_data_table%"), sourceDataTable))) { try (final ResultSet resultSet = statement.executeQuery()) { @@ -119,7 +120,7 @@ public class LegacyMigrator extends Migrator { .exceptionally(exception -> { plugin.getLoggingAdapter().log(Level.SEVERE, "Failed to migrate legacy data for " + data.user().username + ": " + exception.getMessage()); return null; - })))); + })).join())); plugin.getLoggingAdapter().log(Level.INFO, "Migration complete for " + dataToMigrate.size() + " users in " + ((System.currentTimeMillis() - startTime) / 1000) + " seconds!"); return true; } catch (Exception e) {