Browse Source

FS: Fix lazy initialization of non-volatile static field

The 'factory' field is lazy initialized in the detect() 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: Ib32663bb28c9564584256e01f625b4e7875e6223
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
stable-4.6
David Pursehouse 8 years ago
parent
commit
bdf3e43d76
  1. 2
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

2
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

@ -164,7 +164,7 @@ public abstract class FS {
/** The auto-detected implementation selected for this operating system and JRE. */
public static final FS DETECTED = detect();
private static FSFactory factory;
private volatile static FSFactory factory;
/**
* Auto-detect the appropriate file system abstraction.

Loading…
Cancel
Save