Procházet zdrojové kódy

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>
tags/v4.6.0.201612231935-r
David Pursehouse před 7 roky
rodič
revize
bdf3e43d76

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java Zobrazit soubor

@@ -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.

Načítá se…
Zrušit
Uložit