From b8c07015d175c0e8393ee2838f5c73cb61eb5404 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 11 Feb 2015 23:03:59 +0100 Subject: [PATCH] [Bugfix] fixed bug where Migrations didn't handle missing realm - If a code migration is run programmatically, then in some migrations shouldn't fail if a realm is missing -> the realm might not be available in a certain environment --- .../src/main/java/li/strolch/migrations/Migrations.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/li.strolch.service/src/main/java/li/strolch/migrations/Migrations.java b/li.strolch.service/src/main/java/li/strolch/migrations/Migrations.java index 2397a801c..22db2daba 100644 --- a/li.strolch.service/src/main/java/li/strolch/migrations/Migrations.java +++ b/li.strolch.service/src/main/java/li/strolch/migrations/Migrations.java @@ -2,6 +2,7 @@ package li.strolch.migrations; import java.io.File; import java.io.FileFilter; +import java.text.MessageFormat; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -113,6 +114,11 @@ public class Migrations { MapOfLists migrationsRan = new MapOfLists<>(); for (String realm : codeMigrationsByRealm.keySet()) { + + // ignore if no such realm + if (!this.currentVersions.containsKey(realm)) + continue; + Version currentVersion = this.currentVersions.get(realm); List listOfMigrations = codeMigrationsByRealm.getList(realm); @@ -130,6 +136,8 @@ public class Migrations { DBC.INTERIM.assertTrue("Current version " + currentVersion + " is not before next " + migrateVersion, isLaterMigration); + String msg = "[{0}] Running code migration {1} {2}"; + logger.info(MessageFormat.format(msg, realm, migrateVersion, migration.getClass().getName())); migration.migrate(this.container, cert); migrationsRan.addElement(realm, migration.getVersion()); }