InputStream for serial communication (falsely) detects end

I'm using RXTX for Java to communicate with a device, that sends out data (ASCII codes) in an endless loop. It never sends out an EOF (end of file), EOT (end of transmission) or any other control character.

With RXTX you can get the InputStream of the serial port. So for reading the transmitted bytes I'm using InputStreams method read(). The documentation of the method read() says that it will return the read data unless it detects the end of the stream (in which case it will return -1).

Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown. A subclass must provide an implementation of this method.

Although the device never sends control characters, read() occasionally returns -1.

If it's the case that there is no data available at the serial port the method should block until data is available, so I'm excluding that this causes read() to return -1.

What could cause this behaviour? Any help is greatly appreciated.