diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java index 7c6295cce80e0f2e106e493f12f68ee4748af3f1..e8f61584fef07525d87679ae8036a15eebb1c9fa 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java @@ -3403,10 +3403,9 @@ public class SQLEditor extends SQLEditorBase implements serverOutputs.clear(); } - final StringWriter dump = new StringWriter(); for (ServerOutputInfo info : outputs) { try { - info.outputReader.readServerOutput(monitor, info.executionContext, info.result, null, new PrintWriter(dump, true)); + info.outputReader.readServerOutput(monitor, info.executionContext, info.result, null, outputViewer.getOutputWriter()); } catch (Exception e) { log.error(e); } @@ -3428,7 +3427,7 @@ public class SQLEditor extends SQLEditorBase implements DBCStatement statement = queryJob.getCurrentStatement(); if (statement != null) { try { - outputReader.readServerOutput(monitor, executionContext, null, statement, new PrintWriter(dump, true)); + outputReader.readServerOutput(monitor, executionContext, null, statement, outputViewer.getOutputWriter()); } catch (DBCException e) { log.error(e); } @@ -3437,25 +3436,17 @@ public class SQLEditor extends SQLEditorBase implements } } } - - final String dumpString = dump.toString() - .replace("\0", ""); // Remove zero characters - if (!dumpString.isEmpty()) { - UIUtils.asyncExec(() -> { - if (outputViewer.isDisposed()) { - return; - } - try { - IOUtils.copyText(new StringReader(dumpString), outputViewer.getOutputWriter()); - } catch (IOException e) { - log.error(e); - } - if (outputViewer.isHasNewOutput()) { - outputViewer.scrollToEnd(); - updateOutputViewerIcon(true); + UIUtils.asyncExec(() -> { + if (outputViewer!=null) { + if (outputViewer.getControl()!=null) { + if (!outputViewer.isDisposed() && outputViewer.isHasNewOutput()) { + outputViewer.scrollToEnd(); + updateOutputViewerIcon(true); + outputViewer.resetNewOutput(); + } } - }); - } + } + }); } } } diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorOutputConsoleViewer.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorOutputConsoleViewer.java index aed2f29ecaf4abe76a1de35db0776c621306a7b4..b32d1cd4637d94a5397fe6f9c0aba6484937a94a 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorOutputConsoleViewer.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorOutputConsoleViewer.java @@ -48,6 +48,7 @@ public class SQLEditorOutputConsoleViewer extends TextConsoleViewer { super(resultTabs, console); this.console = console; this.getText().setMargins(5, 5, 5, 5); + this.console.setWaterMarks(1024*1024*10, 1024*1024*20); setEditable(false);