mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
Bug 284485 Fix potential race in getProjectDescriptionStorage(IProject project)
This commit is contained in:
parent
c5f45c85a3
commit
f63d598fe1
1 changed files with 4 additions and 4 deletions
|
@ -16,11 +16,11 @@ import java.io.ByteArrayOutputStream;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
@ -87,7 +87,7 @@ public class CProjectDescriptionStorageManager {
|
|||
/** Map of StorageType ID -> List of StorageTypes */
|
||||
private volatile Map<String, List<CProjectDescriptionStorageTypeProxy>> storageTypeMap;
|
||||
/** Map from IProject -> AbstractCProjectDescriptionStorage which is responsible for (de)serializing the project */
|
||||
private Map<IProject, AbstractCProjectDescriptionStorage> fDescriptionStorageMap = Collections.synchronizedMap(new HashMap<IProject, AbstractCProjectDescriptionStorage>());
|
||||
private ConcurrentHashMap<IProject, AbstractCProjectDescriptionStorage> fDescriptionStorageMap = new ConcurrentHashMap<IProject, AbstractCProjectDescriptionStorage>();
|
||||
|
||||
|
||||
private volatile static CProjectDescriptionStorageManager instance;
|
||||
|
@ -115,9 +115,9 @@ public class CProjectDescriptionStorageManager {
|
|||
AbstractCProjectDescriptionStorage projStorage = fDescriptionStorageMap.get(project);
|
||||
if (projStorage == null) {
|
||||
projStorage = loadProjectStorage(project);
|
||||
fDescriptionStorageMap.put(project, projStorage);
|
||||
fDescriptionStorageMap.putIfAbsent(project, projStorage);
|
||||
}
|
||||
return projStorage;
|
||||
return fDescriptionStorageMap.get(project);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue