Я пытаюсь прочитать JSON-Strings через соединение с сокетом в приложении Android, но внезапно начал получать StringIndexOutOfBoundsException, которые я не могу объяснить (заблокировал некоторые идентификаторы в имени пакета):
java.lang.StringIndexOutOfBoundsException: length=10000; regionStart=0; regionLength=-1
at java.lang.StringFactory.newStringFromChars(StringFactory.java:218)
at **.***********.SocketHandler.listenForMessages(SocketHandler.java:48)
где (начиная со строки 45) SocketHandler.listenForMessages () читает
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
char[] buffer = new char[READ_BUFFER];
int messageLength = reader.read(buffer, 0, READ_BUFFER);
String message = new String(buffer, 0, messageLength);
Я не затрагивал ту часть кода, которая работала без проблем несколько недель назад, когда я неожиданно получил это Исключение, даже когда значение READ_BUFFER было больше, чем должно быть получено (10k здесь).
Показатели
length=10000; regionStart=0; regionLength=-1
заставляет меня предположить, что проблема связана с чтением пустого сообщения, но я не могу понять, почему проблема не возникла раньше. Любая помощь?