Fix lazy initialization of non-volatile static field in GerritLauncher The `myArchive` static member of GerritLauncher is lazy initialized in the `getDistributionArchive` 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: I2774cc12c2ee749331f72ff83c3d317b073787f3
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 d49c6c7..afe61d2 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
@@ -299,7 +299,7 @@ return name; } - private static File myArchive; + private volatile static File myArchive; /** * Locate the JAR/WAR file we were launched from.