mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Gradle: incorrect interning of LibraryData/LibraryDependencyData removed (will be redone in scope of IDEA-218166)
GitOrigin-RevId: f61d619fa0563c72450b9b498b074dfd7e4be103
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8e5c48160f
commit
127cb52450
@@ -85,7 +85,7 @@ public class JavaGradleProjectResolver extends AbstractProjectResolverExtension
|
||||
}
|
||||
BuildScriptClasspathData buildScriptClasspathData = new BuildScriptClasspathData(GradleConstants.SYSTEM_ID, classpathEntries);
|
||||
buildScriptClasspathData.setGradleHomeDir(buildScriptClasspathModel != null ? buildScriptClasspathModel.getGradleHomeDir() : null);
|
||||
ideModule.createChild(BuildScriptClasspathData.KEY, GradleProjectResolverUtil.intern(resolverCtx, buildScriptClasspathData));
|
||||
ideModule.createChild(BuildScriptClasspathData.KEY, buildScriptClasspathData);
|
||||
|
||||
nextResolver.populateModuleExtraModels(gradleModule, ideModule);
|
||||
}
|
||||
|
||||
-10
@@ -19,8 +19,6 @@ import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
|
||||
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.util.containers.HashSetInterner;
|
||||
import com.intellij.util.containers.Interner;
|
||||
import org.gradle.initialization.BuildLayoutParameters;
|
||||
import org.gradle.tooling.CancellationTokenSource;
|
||||
import org.gradle.tooling.GradleConnector;
|
||||
@@ -52,8 +50,6 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
|
||||
@Nullable private String myBuildSrcGroup;
|
||||
@Nullable private BuildEnvironment myBuildEnvironment;
|
||||
|
||||
@NotNull private final Interner myInterner = new HashSetInterner();
|
||||
|
||||
public DefaultProjectResolverContext(@NotNull final ExternalSystemTaskId externalSystemTaskId,
|
||||
@NotNull final String projectPath,
|
||||
@Nullable final GradleExecutionSettings settings,
|
||||
@@ -218,10 +214,4 @@ public class DefaultProjectResolverContext extends UserDataHolderBase implements
|
||||
public BuildEnvironment getBuildEnvironment() {
|
||||
return myBuildEnvironment;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public <T> T intern(@NotNull T value) {
|
||||
//noinspection unchecked
|
||||
return (T)myInterner.intern(value);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -273,7 +273,7 @@ public class GradleBuildSrcProjectsResolver {
|
||||
|
||||
DataNode<?> parent = classpathNode.getParent();
|
||||
assert parent != null;
|
||||
parent.createChild(BuildScriptClasspathData.KEY, GradleProjectResolverUtil.intern(myResolverContext, buildScriptClasspathData));
|
||||
parent.createChild(BuildScriptClasspathData.KEY, buildScriptClasspathData);
|
||||
classpathNode.clear(true);
|
||||
});
|
||||
}
|
||||
|
||||
+7
-17
@@ -588,7 +588,7 @@ public class GradleProjectResolverUtil {
|
||||
for (File artifact: projectDependency.getProjectDependencyArtifacts()) {
|
||||
library.addPath(LibraryPathType.BINARY, artifact.getPath());
|
||||
}
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, intern(resolverCtx, libraryDependencyData));
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData);
|
||||
}
|
||||
else {
|
||||
depOwnerDataNode = ownerDataNode;
|
||||
@@ -604,7 +604,7 @@ public class GradleProjectResolverUtil {
|
||||
moduleDependencyData.setOrder(mergedDependency.getClasspathOrder());
|
||||
moduleDependencyData.setExported(mergedDependency.getExported());
|
||||
moduleDependencyData.setModuleDependencyArtifacts(ContainerUtil.map(projectDependencyInfo.dependencyArtifacts, File::getPath));
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.MODULE_DEPENDENCY, intern(resolverCtx, moduleDependencyData));
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.MODULE_DEPENDENCY, moduleDependencyData);
|
||||
}
|
||||
|
||||
// put transitive dependencies to the ownerDataNode,
|
||||
@@ -640,7 +640,7 @@ public class GradleProjectResolverUtil {
|
||||
libraryDependencyData.setScope(dependencyScope);
|
||||
libraryDependencyData.setOrder(mergedDependency.getClasspathOrder());
|
||||
libraryDependencyData.setExported(mergedDependency.getExported());
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, intern(resolverCtx, libraryDependencyData));
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData);
|
||||
}
|
||||
else if (mergedDependency instanceof ExternalMultiLibraryDependency) {
|
||||
final LibraryLevel level = LibraryLevel.MODULE;
|
||||
@@ -664,7 +664,7 @@ public class GradleProjectResolverUtil {
|
||||
library.addPath(LibraryPathType.DOC, file.getAbsolutePath());
|
||||
}
|
||||
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, intern(resolverCtx, libraryDependencyData));
|
||||
depOwnerDataNode = ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData);
|
||||
}
|
||||
else if (mergedDependency instanceof FileCollectionDependency) {
|
||||
final LibraryLevel level = LibraryLevel.MODULE;
|
||||
@@ -679,7 +679,7 @@ public class GradleProjectResolverUtil {
|
||||
library.addPath(LibraryPathType.BINARY, file.getAbsolutePath());
|
||||
}
|
||||
|
||||
ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, intern(resolverCtx, libraryDependencyData));
|
||||
ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData);
|
||||
}
|
||||
else if (mergedDependency instanceof UnresolvedExternalDependency) {
|
||||
String libraryName = mergedDependency.getId().getPresentableName();
|
||||
@@ -691,7 +691,7 @@ public class GradleProjectResolverUtil {
|
||||
LibraryLevel level = linkProjectLibrary(resolverCtx, ideProject, library) ? LibraryLevel.PROJECT : LibraryLevel.MODULE;
|
||||
LibraryDependencyData libraryDependencyData = new LibraryDependencyData(ownerModule, library, level);
|
||||
libraryDependencyData.setScope(dependencyScope);
|
||||
ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, intern(resolverCtx, libraryDependencyData));
|
||||
ownerDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData);
|
||||
}
|
||||
|
||||
if (depOwnerDataNode != null) {
|
||||
@@ -731,22 +731,12 @@ public class GradleProjectResolverUtil {
|
||||
DataNode<LibraryData> libraryData = ExternalSystemApiUtil.find(ideProject, ProjectKeys.LIBRARY,
|
||||
node -> libraryName.equals(node.getData().getExternalName()));
|
||||
if (libraryData == null) {
|
||||
ideProject.createChild(ProjectKeys.LIBRARY, intern(context, library));
|
||||
ideProject.createChild(ProjectKeys.LIBRARY, library);
|
||||
return true;
|
||||
}
|
||||
return libraryData.getData().equals(library);
|
||||
}
|
||||
|
||||
public static <T> T intern(ProjectResolverContext context, T value) {
|
||||
// hot fix for hashing issue
|
||||
return value;
|
||||
//if (context == null) {
|
||||
// LOG.warn("ProjectResolverContext should not be null, it is used to intern objects");
|
||||
// return value;
|
||||
//}
|
||||
//return ((DefaultProjectResolverContext)context).intern(value);
|
||||
}
|
||||
|
||||
public static boolean isIdeaTask(final String taskName, @Nullable String group) {
|
||||
if ((group == null || "ide".equalsIgnoreCase(group)) && StringUtil.containsIgnoreCase(taskName, "idea")) return true;
|
||||
return "other".equalsIgnoreCase(group) && StringUtil.containsIgnoreCase(taskName, "idea");
|
||||
|
||||
Reference in New Issue
Block a user