From 590632259832ff4f1aecd6528980bdecaf493b8c Mon Sep 17 00:00:00 2001 From: Michael Golubev Date: Thu, 23 Apr 2020 18:11:48 +0200 Subject: [PATCH] IDEA-238200: Ensure Docker plugin is dynamic - fix DockerCloudConfiguration leak inside default values filter GitOrigin-RevId: c36551696092be701576f5ec00e06d708d8db5e0 --- .../impl/configuration/RemoteServersManagerImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/configuration/RemoteServersManagerImpl.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/configuration/RemoteServersManagerImpl.java index e71b00700b21..40731ddc4ff8 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/configuration/RemoteServersManagerImpl.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/configuration/RemoteServersManagerImpl.java @@ -29,7 +29,7 @@ import java.util.List; @State(name = "RemoteServers", storages = @Storage("remote-servers.xml")) public class RemoteServersManagerImpl extends RemoteServersManager implements PersistentStateComponent { - public static final SkipDefaultValuesSerializationFilters SERIALIZATION_FILTERS = new SkipDefaultValuesSerializationFilters(); + private SkipDefaultValuesSerializationFilters myDefaultValuesFilter = new SkipDefaultValuesSerializationFilters(); private final List> myServers = new ArrayList<>(); private final List myUnknownServers = new ArrayList<>(); private final MessageBus myMessageBus; @@ -54,6 +54,9 @@ public class RemoteServersManagerImpl extends RemoteServersManager implements Pe removeServer(nextServer); myUnknownServers.add(nextState); }); + if (!removedServers.isEmpty()) { + myDefaultValuesFilter = new SkipDefaultValuesSerializationFilters(); + } } }, null); } @@ -153,11 +156,11 @@ public class RemoteServersManagerImpl extends RemoteServersManager implements Pe } @NotNull - private static RemoteServerState createServerState(@NotNull RemoteServer server) { + private RemoteServerState createServerState(@NotNull RemoteServer server) { RemoteServerState serverState = new RemoteServerState(); serverState.myName = server.getName(); serverState.myTypeId = server.getType().getId(); - serverState.myConfiguration = XmlSerializer.serialize(server.getConfiguration().getSerializer().getState(), SERIALIZATION_FILTERS); + serverState.myConfiguration = XmlSerializer.serialize(server.getConfiguration().getSerializer().getState(), myDefaultValuesFilter); return serverState; }