diff options
Diffstat (limited to 'tutorials/java/src/phpdbg/ui')
-rw-r--r-- | tutorials/java/src/phpdbg/ui/DebugSocket.java | 47 | ||||
-rw-r--r-- | tutorials/java/src/phpdbg/ui/JTerminalPane.java | 5 |
2 files changed, 24 insertions, 28 deletions
diff --git a/tutorials/java/src/phpdbg/ui/DebugSocket.java b/tutorials/java/src/phpdbg/ui/DebugSocket.java index bbd7d34a44..4542cbf70d 100644 --- a/tutorials/java/src/phpdbg/ui/DebugSocket.java +++ b/tutorials/java/src/phpdbg/ui/DebugSocket.java @@ -76,37 +76,33 @@ public class DebugSocket implements Runnable { if (reader) { /* The reader thread part will wait() until there is input */ Socket socket = new Socket(this.host, this.port); - try { - do { - String command; - OutputStream output = socket.getOutputStream(); + do { + String command; + OutputStream output = socket.getOutputStream(); - synchronized(this) { - wait(); + synchronized(this) { + wait(); - if (!quit) { - command = main.getInputField().getText(); - /* send command to stdin socket */ - if (command != null) { - if (main.isEchoing()) { - main.getOutputField().appendANSI("remote> "); - main.getOutputField().appendANSI(command); - main.getOutputField().appendANSI("\n"); - } - output.write( - command.getBytes()); - output.write("\n".getBytes()); - output.flush(); + if (!quit) { + command = main.getInputField().getText(); + /* send command to stdin socket */ + if (command != null) { + if (main.isEchoing()) { + main.getOutputField().appendANSI("remote> "); + main.getOutputField().appendANSI(command); + main.getOutputField().appendANSI("\n"); } - main.getInputField().setText(null); + output.write( + command.getBytes()); + output.write("\n".getBytes()); + output.flush(); } + main.getInputField().setText(null); } - } while (!quit); - } catch (IOException ex) { - if (!quit) { - main.messageBox(ex.getMessage(), MessageType.ERROR); } - } + } while (!quit); + + socket.close(); } else { /* * The writer thread will use non-blocking i/o consuming @@ -144,6 +140,7 @@ public class DebugSocket implements Runnable { } } } + channel.close(); } } catch (IOException | InterruptedException ex) { if (!quit) { diff --git a/tutorials/java/src/phpdbg/ui/JTerminalPane.java b/tutorials/java/src/phpdbg/ui/JTerminalPane.java index c616d2a8b8..ae63c22300 100644 --- a/tutorials/java/src/phpdbg/ui/JTerminalPane.java +++ b/tutorials/java/src/phpdbg/ui/JTerminalPane.java @@ -72,11 +72,10 @@ public class JTerminalPane extends JTextPane { SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c); setCharacterAttributes(aset, false); replaceSelection(s); - setCaretPosition( - (getDocument().getLength() > 0) ? (getDocument().getLength() - 1) : 0); + setCaretPosition(getDocument().getLength()); } - public void appendANSI(String s) { + public synchronized void appendANSI(String s) { int aPos = 0; int aIndex; int mIndex; |