in src/main/java/com/fazecast/jSerialComm/SerialPort.java [2288:2305]
public final int read(byte[] b, int off, int len) throws NullPointerException, IndexOutOfBoundsException, SerialPortIOException, SerialPortTimeoutException
{
// Perform error checking
if (b == null)
throw new NullPointerException("A null pointer was passed in for the read buffer.");
if ((len < 0) || (off < 0) || (len > (b.length - off)))
throw new IndexOutOfBoundsException("The specified read offset plus length extends past the end of the specified buffer.");
if (portHandle == 0)
throw new SerialPortIOException("This port appears to have been shutdown or disconnected.");
if ((b.length == 0) || (len == 0))
return 0;
// Read from the serial port
int numRead = readBytes(b, len, off);
if ((numRead == 0) && !timeoutExceptionsSuppressed)
throw new SerialPortTimeoutException("The read operation timed out before any data was returned.");
return numRead;
}