diff --git a/src/main/java/com/commafeed/backend/DatabaseCleaner.java b/src/main/java/com/commafeed/backend/DatabaseCleaner.java index 75a64bd6..47ab382b 100644 --- a/src/main/java/com/commafeed/backend/DatabaseCleaner.java +++ b/src/main/java/com/commafeed/backend/DatabaseCleaner.java @@ -77,8 +77,10 @@ public class DatabaseCleaner { do { List fcs = feedDAO.findDuplicates(0, 10, 1); deleted = fcs.size(); + + List threads = Lists.newArrayList(); for (final FeedCount fc : fcs) { - new Thread() { + Thread thread = new Thread() { public void run() { Feed into = feedDAO.findById(fc.feeds.get(0).getId()); List feeds = Lists.newArrayList(); @@ -87,7 +89,16 @@ public class DatabaseCleaner { } mergeFeeds(into, feeds); }; - }.start(); + }; + thread.start(); + threads.add(thread); + } + for (Thread thread : threads) { + try { + thread.join(); + } catch (InterruptedException e) { + log.error(e.getMessage(), e); + } } total += deleted; log.info("merged {} feeds", total);