diff --git a/app/src/processing/app/Serial.java b/app/src/processing/app/Serial.java index 0bab1a655..14c0933c0 100755 --- a/app/src/processing/app/Serial.java +++ b/app/src/processing/app/Serial.java @@ -102,20 +102,17 @@ public class Serial implements SerialPortEventListener { } public static boolean touchPort(String iname, int irate) throws SerialException { + SerialPort port; + boolean result = false; try { Enumeration portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement(); if ((CommPortIdentifier.PORT_SERIAL == portId.getPortType()) && (portId.getName().equals(iname))) { - final SerialPort port = (SerialPort) portId.open("tap", 2000); + port = (SerialPort) portId.open("tap", 2000); port.setSerialPortParams(irate, 8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); - // Sometime the port close takes a lot to complete, so we run it in a parallel thread - new Thread() { - public void run() { - port.close(); - }; - }.start(); - return true; + port.close(); + result = true; } } } catch (PortInUseException e) { @@ -127,7 +124,7 @@ public class Serial implements SerialPortEventListener { I18n.format(_("Error touching serial port ''{0}''."), iname), e ); } - return false; + return result; } public Serial(String iname, int irate,