From 5ab99cafdec192c574221b55fbd7e2cc44954110 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 2 Aug 2019 16:34:52 +0200 Subject: [PATCH] ProjectJdkTableImpl: save to disk only serializable SDKs, do not touch MockSdk used in tests In new project model all SDKs must be registered in SDK table to properly resolve them, so MockSdks are now registered in ProjectJdkTable, which causes errors on occasional serialization in tests GitOrigin-RevId: 9d200a0446581e89f96b01206ed8d844425c3121 --- .../openapi/projectRoots/impl/ProjectJdkTableImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java index 6d035e758364..61ffc7e5bc78 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java @@ -249,9 +249,11 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements ExportableCo public Element getState() { Element element = new Element("state"); for (Sdk jdk : mySdks) { - Element e = new Element(ELEMENT_JDK); - ((ProjectJdkImpl)jdk).writeExternal(e); - element.addContent(e); + if (jdk instanceof ProjectJdkImpl) { + Element e = new Element(ELEMENT_JDK); + ((ProjectJdkImpl)jdk).writeExternal(e); + element.addContent(e); + } } return element; }