diff --git a/morf-core/src/main/java/org/alfasoftware/morf/upgrade/GraphBasedUpgradeNode.java b/morf-core/src/main/java/org/alfasoftware/morf/upgrade/GraphBasedUpgradeNode.java index 0f6c4adab..6a4f2da1b 100644 --- a/morf-core/src/main/java/org/alfasoftware/morf/upgrade/GraphBasedUpgradeNode.java +++ b/morf-core/src/main/java/org/alfasoftware/morf/upgrade/GraphBasedUpgradeNode.java @@ -134,7 +134,7 @@ public List getUpgradeStatements() { * node should be executed while this one is being processed) */ public boolean requiresExclusiveExecution() { - return exclusiveExecution || reads.isEmpty() && modifies.isEmpty(); + return exclusiveExecution || isRoot(); } diff --git a/morf-core/src/test/java/org/alfasoftware/morf/upgrade/TestGraphBasedUpgradeBuilder.java b/morf-core/src/test/java/org/alfasoftware/morf/upgrade/TestGraphBasedUpgradeBuilder.java index 9213ce130..7e53bcaab 100644 --- a/morf-core/src/test/java/org/alfasoftware/morf/upgrade/TestGraphBasedUpgradeBuilder.java +++ b/morf-core/src/test/java/org/alfasoftware/morf/upgrade/TestGraphBasedUpgradeBuilder.java @@ -353,7 +353,7 @@ public void testExclusiveNodeFirstThenStandard() { public void testExclusiveNodeNotAParent() { // given when(upgradeTableResolution.getModifiedTables(U1000.class.getName())).thenReturn(Sets.newHashSet("t1")); - when(upgradeTableResolution.getModifiedTables(U1000.class.getName())).thenReturn(Sets.newHashSet("t1", "t2")); + when(upgradeTableResolution.getModifiedTables(U1001.class.getName())).thenReturn(Sets.newHashSet("t1", "t2")); upgradeSteps.addAll(Lists.newArrayList(eu1, u1000, u1001)); // when