From dd05bcbcdef1e7b3182c4cb1de414cad522c63cc Mon Sep 17 00:00:00 2001 From: Athou Date: Wed, 10 Jul 2013 10:56:42 +0200 Subject: [PATCH] wait for threads to finish before starting new ones --- .../com/commafeed/backend/DatabaseCleaner.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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);