From 0e7118f5de439a4cf8a824ca389585b376d9bc6b Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Mon, 4 Sep 2017 18:29:03 +0300 Subject: [PATCH] Clone external run configurations using serialization. This allows to capture extensions (e.g. coverage) configuration. --- .../execution/ExternalSystemRunConfiguration.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java index 61cdd23ddd1c..197a2239f559 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java @@ -114,9 +114,18 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i @Override public ExternalSystemRunConfiguration clone() { - ExternalSystemRunConfiguration result = (ExternalSystemRunConfiguration)super.clone(); - result.mySettings = mySettings.clone(); - return result; + final Element element = new Element("toClone"); + try { + writeExternal(element); + RunConfiguration configuration = getFactory().createTemplateConfiguration(getProject()); + configuration.setName(getName()); + configuration.readExternal(element); + return (ExternalSystemRunConfiguration)configuration; + } + catch (InvalidDataException | WriteExternalException e) { + LOG.error(e); + return null; + } } @Override