diff --git a/platform/external-system-api/src/com/intellij/openapi/externalSystem/model/project/ContentRootData.java b/platform/external-system-api/src/com/intellij/openapi/externalSystem/model/project/ContentRootData.java index fb54cd26d461..88ccc0cc3a24 100644 --- a/platform/external-system-api/src/com/intellij/openapi/externalSystem/model/project/ContentRootData.java +++ b/platform/external-system-api/src/com/intellij/openapi/externalSystem/model/project/ContentRootData.java @@ -10,10 +10,7 @@ import org.jetbrains.annotations.Nullable; import java.io.File; import java.io.Serializable; -import java.util.Collection; -import java.util.Collections; -import java.util.Locale; -import java.util.Map; +import java.util.*; /** * @author Denis Zhdanov @@ -64,7 +61,7 @@ public class ContentRootData extends AbstractExternalEntityData { if (FileUtil.isAncestor(new File(getRootPath()), new File(path), false)) { Collection paths = myData.get(type); if (paths == null) { - myData.put(type, paths = ContainerUtilRt.newHashSet()); + myData.put(type, paths = new TreeSet(SourceRootComparator.INSTANCE)); } paths.add(new SourceRoot( ExternalSystemApiUtil.toCanonicalPath(path), @@ -148,4 +145,13 @@ public class ContentRootData extends AbstractExternalEntityData { return buffer.toString(); } } + + private static final class SourceRootComparator implements Comparator { + private static final SourceRootComparator INSTANCE = new SourceRootComparator(); + + @Override + public int compare(@NotNull SourceRoot o1, @NotNull SourceRoot o2) { + return StringUtil.naturalCompare(o1.myPath, o2.myPath); + } + } }