From 8ef9a1ba92b563f15d91dbfe376d000cb2ecaef8 Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Wed, 1 Apr 2020 13:45:10 +0700 Subject: [PATCH] keep ordering of annotation processor paths during (de)serialization IDEA-235948 GitOrigin-RevId: 1e0b1fe0654dc08ffba746cd8c8d82ae1edb15e8 --- .../tooling/builder/AnnotationProcessingModelBuilder.java | 2 +- .../tooling/internal/AnnotationProcessingConfigImpl.java | 8 ++++---- .../AnnotationProcessingModelSerializationService.java | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/AnnotationProcessingModelBuilder.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/AnnotationProcessingModelBuilder.java index a81036519750..bc2396d25374 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/AnnotationProcessingModelBuilder.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/AnnotationProcessingModelBuilder.java @@ -77,7 +77,7 @@ public class AnnotationProcessingModelBuilder extends AbstractModelBuilderServic File generatedSourcesDirectory = isAtLeastGradle4_3 ? options.getAnnotationProcessorGeneratedSourcesDirectory() : null; String output = generatedSourcesDirectory != null ? generatedSourcesDirectory.getAbsolutePath() : null; - sourceSetConfigs.put(sourceSet.getName(), new AnnotationProcessingConfigImpl(paths, annotationProcessorArgs, output, isTestSourceSet(sourceSet, ideaModule))); + sourceSetConfigs.put(sourceSet.getName(), new AnnotationProcessingConfigImpl(new ArrayList(paths), annotationProcessorArgs, output, isTestSourceSet(sourceSet, ideaModule))); } } } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/AnnotationProcessingConfigImpl.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/AnnotationProcessingConfigImpl.java index 5764b80c0269..e32763e520a0 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/AnnotationProcessingConfigImpl.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/AnnotationProcessingConfigImpl.java @@ -7,20 +7,20 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.gradle.model.AnnotationProcessingConfig; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Set; public class AnnotationProcessingConfigImpl implements AnnotationProcessingConfig, Serializable { - private final Set myPaths; + private final List myPaths; private final List myArgs; private final String myProcessorOutput; private final boolean isTestSources; - public AnnotationProcessingConfigImpl(Set files, List args, String output, boolean sources) { + public AnnotationProcessingConfigImpl(List files, List args, String output, boolean sources) { myProcessorOutput = output; isTestSources = sources; - myPaths = files; + myPaths = new ArrayList(files); myArgs = args; } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/serialization/AnnotationProcessingModelSerializationService.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/serialization/AnnotationProcessingModelSerializationService.java index 186a6bf9c2d0..a8ecd3aa5893 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/serialization/AnnotationProcessingModelSerializationService.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/serialization/AnnotationProcessingModelSerializationService.java @@ -19,7 +19,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; import java.util.Map; -import java.util.Set; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.*; @@ -144,7 +143,7 @@ public class AnnotationProcessingModelSerializationService implements Serializat @Override public AnnotationProcessingConfigImpl create() { List args = readStringList(reader); - Set files = readStringSet(reader); + List files = readStringList(reader); String output = readString(reader, "output"); boolean isTest = readBoolean(reader,"isTestSources"); return new AnnotationProcessingConfigImpl(files, args, output, isTest);