diff --git a/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java b/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java index ce88f089c1..5ec836df7b 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialIoStreamJSerialComm.java @@ -33,7 +33,10 @@ public class SerialIoStreamJSerialComm implements IoStream { { if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE) return; - byte[] newData = new byte[sp.bytesAvailable()]; + int bytesAvailable = sp.bytesAvailable(); + if (bytesAvailable <= 0) + return; // sometimes negative value is returned at least on Mac + byte[] newData = new byte[bytesAvailable]; int numRead = sp.readBytes(newData, newData.length); byte[] data = new byte[numRead]; System.arraycopy(newData, 0, data, 0, numRead);