From 74afb35a8bbae90c1e9d936fefe97cf778f7132c Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Mon, 12 Sep 2016 14:54:55 +0300 Subject: [PATCH] add logging to investigate EA-88298 - assert: RootModelImpl.addLibraryEntry --- .../com/intellij/openapi/roots/impl/RootModelImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 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 9e621cde6b22..d35d7ba66f8a 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 @@ -33,6 +33,7 @@ import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; import com.intellij.util.ArrayUtil; +import com.intellij.util.ObjectUtils; import com.intellij.util.containers.ContainerUtil; import org.jdom.Element; import org.jetbrains.annotations.NotNull; @@ -225,7 +226,14 @@ public class RootModelImpl extends RootModelBase implements ModifiableRootModel public LibraryOrderEntry addLibraryEntry(@NotNull Library library) { assertWritable(); final LibraryOrderEntry libraryOrderEntry = new LibraryOrderEntryImpl(library, this, myProjectRootManager); - assert libraryOrderEntry.isValid(); + if (libraryOrderEntry.isValid()) { + LibraryEx libraryEx = ObjectUtils.tryCast(library, LibraryEx.class); + boolean libraryDisposed = libraryEx != null ? libraryEx.isDisposed() : Disposer.isDisposed(library); + throw new AssertionError("Invalid libraryOrderEntry, library: " + library + + " of type " + library.getClass() + + ", disposed: " + libraryDisposed + + ", kind: " + (libraryEx != null ? libraryEx.getKind() : "")); + } myOrderEntries.add(libraryOrderEntry); return libraryOrderEntry; }