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.