diff --git a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageCollectorUtil.java b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageCollectorUtil.java index e8680af6328..2b78931bfe1 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageCollectorUtil.java +++ b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageCollectorUtil.java @@ -20,8 +20,7 @@ import org.jetbrains.annotations.NotNull; public class MessageCollectorUtil { public static void reportException(@NotNull MessageCollector messageCollector, @NotNull Throwable exception) { - messageCollector.report(CompilerMessageSeverity.EXCEPTION, MessageRenderer.PLAIN.renderException(exception), + messageCollector.report(CompilerMessageSeverity.EXCEPTION, OutputMessageUtil.renderException(exception), CompilerMessageLocation.NO_LOCATION); } - } diff --git a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageRenderer.java b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageRenderer.java index 27de65a980e..bcb395bff8c 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageRenderer.java +++ b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/MessageRenderer.java @@ -51,11 +51,6 @@ public interface MessageRenderer { return StringUtil.escapeXml(str); } - @Override - public String renderException(@NotNull Throwable e) { - return render(CompilerMessageSeverity.EXCEPTION, PLAIN.renderException(e), CompilerMessageLocation.NO_LOCATION); - } - @Override public String renderConclusion() { return ""; @@ -75,14 +70,6 @@ public interface MessageRenderer { return severity + ": " + position + message; } - @Override - public String renderException(@NotNull Throwable e) { - StringWriter out = new StringWriter(); - //noinspection IOResourceOpenedButNotSafelyClosed - e.printStackTrace(new PrintWriter(out)); - return out.toString(); - } - @Override public String renderConclusion() { return ""; @@ -91,6 +78,5 @@ public interface MessageRenderer { String renderPreamble(); String render(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location); - String renderException(@NotNull Throwable e); String renderConclusion(); } diff --git a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/OutputMessageUtil.java b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/OutputMessageUtil.java index 580f2e00932..7d18c0d5cc1 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/OutputMessageUtil.java +++ b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/messages/OutputMessageUtil.java @@ -22,12 +22,21 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.Collection; public class OutputMessageUtil { private static final String SOURCE_FILES_PREFIX = "Sources:"; private static final String OUTPUT_FILES_PREFIX = "Output:"; + @NotNull + public static String renderException(@NotNull Throwable e) { + StringWriter out = new StringWriter(); + e.printStackTrace(new PrintWriter(out)); + return out.toString(); + } + @NotNull public static String formatOutputMessage(Collection sourceFiles, File outputFile) { return OUTPUT_FILES_PREFIX + "\n" + outputFile.getPath() + "\n" + diff --git a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleXmlParser.java b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleXmlParser.java index 04c564a38de..6ecd7b56ef6 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleXmlParser.java +++ b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleXmlParser.java @@ -23,7 +23,7 @@ import kotlin.modules.ModuleBuilder; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.cli.common.messages.MessageCollector; import org.jetbrains.jet.cli.common.messages.MessageCollectorUtil; -import org.jetbrains.jet.cli.common.messages.MessageRenderer; +import org.jetbrains.jet.cli.common.messages.OutputMessageUtil; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -99,7 +99,7 @@ public class ModuleXmlParser { MessageCollectorUtil.reportException(messageCollector, e); } catch (SAXException e) { - messageCollector.report(ERROR, MessageRenderer.PLAIN.renderException(e), NO_LOCATION); + messageCollector.report(ERROR, OutputMessageUtil.renderException(e), NO_LOCATION); } catch (IOException e) { MessageCollectorUtil.reportException(messageCollector, e); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java index 8f41772ed2f..55fa9f123e0 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/common/CLICompiler.java @@ -69,7 +69,11 @@ public abstract class CLICompiler { } catch (Throwable t) { // Always use tags - errStream.println(MessageRenderer.TAGS.renderException(t)); + errStream.println(MessageRenderer.TAGS.render( + CompilerMessageSeverity.EXCEPTION, + OutputMessageUtil.renderException(t), + CompilerMessageLocation.NO_LOCATION) + ); } return false; } @@ -136,7 +140,7 @@ public abstract class CLICompiler { } } catch (Throwable t) { - groupingCollector.report(CompilerMessageSeverity.EXCEPTION, MessageRenderer.PLAIN.renderException(t), + groupingCollector.report(CompilerMessageSeverity.EXCEPTION, OutputMessageUtil.renderException(t), CompilerMessageLocation.NO_LOCATION); return INTERNAL_ERROR; } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java index 426051d5649..3d94fc215e8 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java @@ -154,7 +154,7 @@ public class K2JVMCompiler extends CLICompiler { return OK; } catch (CompilationException e) { - messageCollector.report(CompilerMessageSeverity.EXCEPTION, MessageRenderer.PLAIN.renderException(e), + messageCollector.report(CompilerMessageSeverity.EXCEPTION, OutputMessageUtil.renderException(e), MessageUtil.psiElementToMessageLocation(e.getElement())); return INTERNAL_ERROR; } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java index cbf07049bdf..717f7b3661c 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java @@ -38,7 +38,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.OutputFile; import org.jetbrains.jet.cli.common.CLIConfigurationKeys; import org.jetbrains.jet.cli.common.messages.MessageCollector; -import org.jetbrains.jet.cli.common.messages.MessageRenderer; +import org.jetbrains.jet.cli.common.messages.OutputMessageUtil; import org.jetbrains.jet.cli.common.modules.ModuleScriptData; import org.jetbrains.jet.cli.common.modules.ModuleXmlParser; import org.jetbrains.jet.cli.common.output.outputUtils.OutputUtilsPackage; @@ -240,14 +240,12 @@ public class CompileEnvironmentUtil { // Used for debug output only private static String loadModuleScriptText(String moduleScriptFile) { - String moduleScriptText; try { - moduleScriptText = FileUtil.loadFile(new File(moduleScriptFile)); + return FileUtil.loadFile(new File(moduleScriptFile)); } catch (IOException e) { - moduleScriptText = "Can't load module script text:\n" + MessageRenderer.PLAIN.renderException(e); + return "Can't load module script text:\n" + OutputMessageUtil.renderException(e); } - return moduleScriptText; } static void writeOutputToDirOrJar( diff --git a/compiler/tests/org/jetbrains/jet/ScriptTest.java b/compiler/tests/org/jetbrains/jet/ScriptTest.java index 93c5c8f4053..95aeacd475f 100644 --- a/compiler/tests/org/jetbrains/jet/ScriptTest.java +++ b/compiler/tests/org/jetbrains/jet/ScriptTest.java @@ -89,7 +89,7 @@ public class ScriptTest { return KotlinToJVMBytecodeCompiler.compileScript(paths, environment); } catch (CompilationException e) { - messageCollector.report(CompilerMessageSeverity.EXCEPTION, MessageRenderer.PLAIN.renderException(e), + messageCollector.report(CompilerMessageSeverity.EXCEPTION, OutputMessageUtil.renderException(e), MessageUtil.psiElementToMessageLocation(e.getElement())); return null; }