Skip to content

Commit 70ee242

Browse files
committed
If we have an error writer, let's print errors there
... even if those errors are actually Java exceptions. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 5788405 commit 70ee242

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/main/java/org/scijava/plugins/scripting/java/JavaEngine.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.io.FileWriter;
4040
import java.io.IOException;
4141
import java.io.PrintStream;
42+
import java.io.PrintWriter;
4243
import java.io.Reader;
4344
import java.io.StringReader;
4445
import java.io.Writer;
@@ -110,8 +111,8 @@ public Object eval(Reader reader) throws ScriptException {
110111
final String path = (String)get(FILENAME);
111112
File file = path == null ? null : new File(path);
112113

114+
final Writer writer = getContext().getErrorWriter();
113115
try {
114-
final Writer writer = getContext().getErrorWriter();
115116
final Builder builder = new Builder(file, reader, writer);
116117
final MavenProject project = builder.project;
117118
String mainClass = builder.mainClass;
@@ -162,9 +163,15 @@ public Class<? extends Command> loadClass() {
162163
builder.cleanup();
163164
}
164165
} catch (Exception e) {
165-
if (e instanceof ScriptException)
166-
throw (ScriptException) e;
167-
throw new ScriptException(e);
166+
if (writer != null) {
167+
final PrintWriter err = new PrintWriter(writer);
168+
e.printStackTrace(err);
169+
err.flush();
170+
} else {
171+
if (e instanceof ScriptException)
172+
throw (ScriptException) e;
173+
throw new ScriptException(e);
174+
}
168175
}
169176
return null;
170177
}

src/test/java/org/scijava/plugins/scripting/java/JavaEngineTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ private ScriptEngine evalJava(final File file) throws ScriptException {
183183
miniMaven.put(ScriptEngine.FILENAME, file.getPath());
184184
final ScriptContext context = miniMaven.getContext();
185185
context.setWriter(new OutputStreamWriter(System.out));
186-
context.setErrorWriter(new OutputStreamWriter(System.err));
187186
miniMaven.eval((Reader) null);
188187
return miniMaven;
189188
}

0 commit comments

Comments
 (0)