diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java index 9f71c5960ec..d1e8fb1b7bc 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetLightClass.java @@ -23,7 +23,6 @@ import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.SystemInfo; import com.intellij.psi.*; import com.intellij.psi.impl.PsiClassImplUtil; import com.intellij.psi.impl.java.stubs.PsiClassStub; @@ -53,8 +52,6 @@ import javax.swing.*; import java.util.Collections; public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMarker { - private static final Logger LOG = Logger.getInstance(JetLightClass.class); - static class JetBadWrapperException extends RuntimeException { private final String context; @@ -171,7 +168,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa if (LightClassUtil.belongsToKotlinBuiltIns(file)) { // We may not fail later due to some luck, but generating JetLightClasses for built-ins is a bad idea anyways // If it fails later, there will be an exception logged - logErrorWithOSInfo(null); + LightClassUtil.logErrorWithOSInfo(null, qualifiedName, file.getVirtualFile()); } final PsiJavaFileStubImpl answer = new PsiJavaFileStubImpl(JetPsiUtil.getFQName(file).getFqName(), true); @@ -223,21 +220,13 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa throw e; } catch (RuntimeException e) { - logErrorWithOSInfo(e); + LightClassUtil.logErrorWithOSInfo(e, qualifiedName, file.getVirtualFile()); throw e; } return answer; } - private void logErrorWithOSInfo(@Nullable Throwable cause) { - LOG.error( - "Could not generate JetLightClass for " + qualifiedName + " declared in " + file.getVirtualFile().getPath() + "\n" + - "built-ins dir URL is " + LightClassUtil.getBuiltInsDirResourceUrl() + "\n" + - "System: " + SystemInfo.OS_NAME + " " + SystemInfo.OS_VERSION + " Java Runtime: " + SystemInfo.JAVA_RUNTIME_VERSION, - cause); - } - @Override public boolean isEquivalentTo(PsiElement another) { return another instanceof PsiClass && Comparing.equal(((PsiClass)another).getQualifiedName(), getQualifiedName()); diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java index 39da4d1a9ba..d4060de241a 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java @@ -17,9 +17,12 @@ package org.jetbrains.jet.asJava; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.utils.KotlinVfsUtil; @@ -27,7 +30,7 @@ import java.net.MalformedURLException; import java.net.URL; public class LightClassUtil { - private static final Logger LOG = Logger.getInstance(JetLightClass.class); + private static final Logger LOG = Logger.getInstance(LightClassUtil.class); private static final String DEFINITION_OF_ANY = "Any.jet"; /** @@ -68,5 +71,14 @@ public class LightClassUtil { return url; } + /*package*/ static void logErrorWithOSInfo(@Nullable Throwable cause, @NotNull FqName fqName, @Nullable VirtualFile virtualFile) { + String path = virtualFile == null ? "" : virtualFile.getPath(); + LOG.error( + "Could not generate LightClass for " + fqName + " declared in " + path + "\n" + + "built-ins dir URL is " + getBuiltInsDirResourceUrl() + "\n" + + "System: " + SystemInfo.OS_NAME + " " + SystemInfo.OS_VERSION + " Java Runtime: " + SystemInfo.JAVA_RUNTIME_VERSION, + cause); + } + private LightClassUtil() {} }