IDEA-238200: Ensure Docker plugin is dynamic

- fix DockerCloudConfiguration leak inside default values filter

GitOrigin-RevId: c36551696092be701576f5ec00e06d708d8db5e0
This commit is contained in:
Michael Golubev
2020-04-23 18:49:41 +00:00
committed by intellij-monorepo-bot
parent 226c6692a0
commit 5906322598
@@ -29,7 +29,7 @@ import java.util.List;
@State(name = "RemoteServers", storages = @Storage("remote-servers.xml"))
public class RemoteServersManagerImpl extends RemoteServersManager implements PersistentStateComponent<RemoteServersManagerState> {
public static final SkipDefaultValuesSerializationFilters SERIALIZATION_FILTERS = new SkipDefaultValuesSerializationFilters();
private SkipDefaultValuesSerializationFilters myDefaultValuesFilter = new SkipDefaultValuesSerializationFilters();
private final List<RemoteServer<?>> myServers = new ArrayList<>();
private final List<RemoteServerState> 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;
}