From a9c8a080e249fd6f5769d978a234ca738f6590cf Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 6 Jun 2014 21:06:47 +0400 Subject: [PATCH] IDEA-125568 (possible NPE in some test setup paths fixed) --- .../openapi/roots/impl/libraries/LibraryImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java index d5eab41c05f1..7a8e9ca01922 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java @@ -37,6 +37,7 @@ import com.intellij.openapi.vfs.pointers.VirtualFilePointerContainer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; import com.intellij.util.ArrayUtil; import com.intellij.util.SmartList; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters; import com.intellij.util.xmlb.XmlSerializer; @@ -612,13 +613,16 @@ public class LibraryImpl extends TraceableDisposable implements LibraryEx.Modifi } private void copyRootsFrom(LibraryImpl fromModel) { - myRoots.clear(); + Map clonedRoots = ContainerUtil.newHashMap(); for (Map.Entry entry : fromModel.myRoots.entrySet()) { OrderRootType rootType = entry.getKey(); VirtualFilePointerContainer container = entry.getValue(); VirtualFilePointerContainer clone = container.clone(myPointersDisposable); - myRoots.put(rootType, clone); + clonedRoots.put(rootType, clone); } + myRoots.clear(); + myRoots.putAll(clonedRoots); + VirtualFilePointerContainer excludedRoots = fromModel.myExcludedRoots; myExcludedRoots = excludedRoots != null ? excludedRoots.clone(myPointersDisposable) : null; }