From f11ecdc07beb6eac762e1536b4f114cfc0a708a9 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 27 Jun 2012 23:05:39 +0400 Subject: [PATCH] Added workaround for CoreLocalVirtualFile.getInputStream() throwing assertion error. --- .../java/extAnnotations/CoreAnnotationsProvider.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/extAnnotations/CoreAnnotationsProvider.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/extAnnotations/CoreAnnotationsProvider.java index 721bf6ce7a7..cc608dcf9ee 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/extAnnotations/CoreAnnotationsProvider.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/extAnnotations/CoreAnnotationsProvider.java @@ -35,7 +35,10 @@ import org.jdom.JDOMException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.BufferedInputStream; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.concurrent.ConcurrentMap; @@ -138,7 +141,12 @@ public class CoreAnnotationsProvider extends ExternalAnnotationsProvider { if (!file.isValid()) continue; final Document document; try { - document = JDOMUtil.loadDocument(escapeAttributes(StreamUtil.readText(file.getVirtualFile().getInputStream()))); + // CoreLocalVirtualFile.getInputStream() fails with AssertionError + VirtualFile virtualFile = file.getVirtualFile(); + InputStream stream = "CoreLocalVirtualFile".equals(virtualFile.getClass().getSimpleName()) + ? new BufferedInputStream(new FileInputStream(virtualFile.getPath())) + : virtualFile.getInputStream(); + document = JDOMUtil.loadDocument(escapeAttributes(StreamUtil.readText(stream))); } catch (IOException e) {