From 435bb6dcee587399ec622dfca44b315b765028f5 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 10 Jul 2018 18:36:43 +0300 Subject: [PATCH] project model: fix removing content entry (IDEA-195253) If a ContentEntry is disposed its VirtualFilePointer may be disposed as well, and its 'getUrl' method will return "", so the ContentEntry won't be properly removed (because myContent uses comparator which compares entries via 'getUrl' method). --- .../src/com/intellij/openapi/roots/impl/RootModelImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelImpl.java index 2e19601f515f..f4b77de655b4 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootModelImpl.java @@ -239,12 +239,12 @@ public class RootModelImpl extends RootModelBase implements ModifiableRootModel public void removeContentEntry(@NotNull ContentEntry entry) { assertWritable(); LOG.assertTrue(myContent.contains(entry)); + myContent.remove(entry); if (entry instanceof RootModelComponentBase) { Disposer.dispose((Disposable)entry); RootModelImpl entryModel = ((RootModelComponentBase)entry).getRootModel(); LOG.assertTrue(entryModel == this, "Removing from " + this + " content entry obtained from " + entryModel); } - myContent.remove(entry); } @Override