From 96f45e35f31aee24ac60625801e1085f15cd79f2 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Fri, 10 Sep 2010 00:38:58 +0200 Subject: [PATCH] Shut up findbugs/protect the shutdownHook in LocalDiskRepositoryTestcase Singleton references should be protected from multiple threads. As far as we know this cannot happen as JUnit is used today since we currently don't run tests in parallel, but now this code will not prevent anyone. Change-Id: I29109344d2e8025fa2a3ccaf7c2c16469544ce05 Signed-off-by: Robin Rosenberg --- .../junit/LocalDiskRepositoryTestCase.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java index d28c7edb5..568fcdcd0 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java @@ -114,17 +114,18 @@ public abstract class LocalDiskRepositoryTestCase extends TestCase { protected void setUp() throws Exception { super.setUp(); - if (shutdownHook == null) { - shutdownHook = new Thread() { - @Override - public void run() { - System.gc(); - recursiveDelete("SHUTDOWN", trash, false, false); - } - }; - Runtime.getRuntime().addShutdownHook(shutdownHook); + synchronized(this) { + if (shutdownHook == null) { + shutdownHook = new Thread() { + @Override + public void run() { + System.gc(); + recursiveDelete("SHUTDOWN", trash, false, false); + } + }; + Runtime.getRuntime().addShutdownHook(shutdownHook); + } } - recursiveDelete(testName(), trash, true, false); mockSystemReader = new MockSystemReader();