From 54c874b7b01f3ecbafe5f0485b32e6b5a7c62f38 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Tue, 22 Oct 2013 10:18:30 +0900 Subject: [PATCH] Fix lazy initialization of non-volatile static field in GerritLauncher The `myHome` static member of GerritLauncher is lazy initialized in the `getHomeDirectory` method. According to FindBugs: Because the compiler or processor may reorder instructions, threads are not guaranteed to see a completely initialized object, if the method can be called by multiple threads. Fix this by declaring the member as 'volatile'. Change-Id: If2fd90ce83d5b383539aac41dddcacaca1729300 --- .../main/java/com/google/gerrit/launcher/GerritLauncher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java b/gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java index fb1177673e..44226bc790 100644 --- a/gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java +++ b/gerrit-launcher/src/main/java/com/google/gerrit/launcher/GerritLauncher.java @@ -302,7 +302,7 @@ public final class GerritLauncher { } private volatile static File myArchive; - private static File myHome; + private volatile static File myHome; /** * Locate the JAR/WAR file we were launched from.