From 8b47486ba98ea40d819af06a08b7733a7c4ec3d7 Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Fri, 29 May 2020 20:58:00 +0200 Subject: [PATCH] fix dom leaks to unloaded plugins (IDEA-242155, IDEA-242151) GitOrigin-RevId: c58f5fe69ef8b8cee36cd4f5ba700ef378899a68 --- .../src/com/intellij/util/xml/impl/ConverterManagerImpl.java | 2 ++ .../src/com/intellij/util/xml/impl/DomApplicationComponent.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/ConverterManagerImpl.java b/xml/dom-impl/src/com/intellij/util/xml/impl/ConverterManagerImpl.java index e98007d14646..5c4a4b864cd8 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/ConverterManagerImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/ConverterManagerImpl.java @@ -72,6 +72,8 @@ public class ConverterManagerImpl implements ConverterManager { mySimpleConverters.put(String.class, Converter.EMPTY_CONVERTER); mySimpleConverters.put(Object.class, Converter.EMPTY_CONVERTER); mySimpleConverters.put(PathReference.class, PathReferenceConverter.INSTANCE); + + DomImplementationClassEP.CONVERTER_EP_NAME.addChangeListener(() -> myConverterInstances.clear(), null); } protected void addConverter(Class clazz, Converter converter) { diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomApplicationComponent.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomApplicationComponent.java index 91867b9c2b93..ae1167b664c3 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomApplicationComponent.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomApplicationComponent.java @@ -83,6 +83,8 @@ public final class DomApplicationComponent { myInvocationCaches.clear(); assignabilityCache.clear(); + myVisitorDescriptions.clear(); + registerDescriptions(); }