diff --git a/core/src/main/java/jenkins/model/RunIdMigrator.java b/core/src/main/java/jenkins/model/RunIdMigrator.java
index 4666a5fb86..0316cf4c4c 100644
--- a/core/src/main/java/jenkins/model/RunIdMigrator.java
+++ b/core/src/main/java/jenkins/model/RunIdMigrator.java
@@ -350,6 +350,11 @@ public final class RunIdMigrator {
return;
}
for (File job : jobDirs) {
+
+ if (job.getName().equals("builds")) {
+ unmigrateBuildsDir(job);
+ }
+
File[] kids = job.listFiles();
if (kids == null) {
continue;
diff --git a/core/src/test/java/jenkins/model/RunIdMigratorTest.java b/core/src/test/java/jenkins/model/RunIdMigratorTest.java
index fb9805db77..4b890ac50a 100644
--- a/core/src/test/java/jenkins/model/RunIdMigratorTest.java
+++ b/core/src/test/java/jenkins/model/RunIdMigratorTest.java
@@ -128,6 +128,26 @@ public class RunIdMigratorTest {
assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize());
}
+ @Test public void reverseMatrixAfterNewBuilds() throws Exception {
+ File root = dir;
+ dir = new File(dir, "jobs/someproject/Environment=prod/builds");
+ write("1/build.xml", "\n\n ok\n 1388649845000\n ok\n");
+ write("legacyIds", "");
+ assertEquals("{1={build.xml='\n\n ok\n 1388649845000\n ok\n'}, legacyIds=''}", summarize());
+ RunIdMigrator.main(root.getAbsolutePath());
+ assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize());
+ }
+
+ @Test public void reverseMavenAfterNewBuilds() throws Exception {
+ File root = dir;
+ dir = new File(dir, "jobs/someproject/test$test/builds");
+ write("1/build.xml", "\n\n ok\n 1388649845000\n ok\n");
+ write("legacyIds", "");
+ assertEquals("{1={build.xml='\n\n ok\n 1388649845000\n ok\n'}, legacyIds=''}", summarize());
+ RunIdMigrator.main(root.getAbsolutePath());
+ assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize());
+ }
+
// TODO test sane recovery from various error conditions
private void write(String file, String text) throws Exception {