diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/PathCanonicalizationStrategy.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/PathCanonicalizationStrategy.java
index 2ac47ca4ba9..e592fb95ab6 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/PathCanonicalizationStrategy.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/PathCanonicalizationStrategy.java
@@ -20,14 +20,14 @@ import java.io.IOException;
* symbolic links is undesirable. The default is to use File.getCanonicalPath.
*/
public abstract class PathCanonicalizationStrategy {
- private static PathCanonicalizationStrategy instance;
+ private static volatile PathCanonicalizationStrategy instance;
static {
setPathCanonicalization(true);
}
public static String getCanonicalPath(File file) {
- return getInstance().getCanonicalPathInternal(file);
+ return instance.getCanonicalPathInternal(file);
}
/**
@@ -38,7 +38,7 @@ public abstract class PathCanonicalizationStrategy {
* @param canonicalize true
to use File.getCanonicalPath, false
* to use File.getAbsolutePath.
*/
- public static synchronized void setPathCanonicalization(boolean canonicalize) {
+ public static void setPathCanonicalization(boolean canonicalize) {
if (canonicalize) {
instance = new PathCanonicalizationStrategy() {
@Override
@@ -60,9 +60,5 @@ public abstract class PathCanonicalizationStrategy {
}
}
- private static synchronized PathCanonicalizationStrategy getInstance() {
- return instance;
- }
-
protected abstract String getCanonicalPathInternal(File file);
}