Официальные причины для «программного обеспечения вызвало прерывание соединения: ошибка записи в сокет»

Учитывая этот фрагмент трассировки стека

Вызвано: java.net.SocketException: программное обеспечение вызвало прерывание соединения: ошибка записи в сокет
в java.net.SocketOutputStream.socketWrite0 (собственный метод)

Я пытался ответить на следующие вопросы:

Какой код выдает это исключение? (JVM? / Tomcat? / Мой код?)Что вызывает это исключение?

Относительно № 1:

Источник JVM от Sun не содержит этого точного сообщения, но я думаю, что текстПрограммное обеспечение вызвало прерывание соединения: ошибка записи в сокет из родной реализацииSocketOutputStream:

private native void socketWrite0(FileDescriptor fd, byte[] b, int off,
                 int len) throws IOException;

Относительно № 2

Я предполагаю, что это вызвано тем, что клиент разорвал соединение до получения полного ответа (например, отправил запрос, но до получения полного ответа он был закрыт / прекращен / отключен)

Вопросов:

Верны ли вышеизложенные предположения (№ 1 и № 2)?Можно ли это дифференцировать от ситуации: «не удалось написать клиенту из-за сетевой ошибки насервер сторона "? или это будет то же сообщение об ошибке?И самое главное:Есть ли официальный документ (например, от Sun), подтверждающий вышесказанное?

Мне нужно иметь доказательство того, что эта трассировка стека является "ошибкой" клиента сокета, и сервер ничего не мог бы сделать, чтобы избежать этого. (кроме перехвата исключения или использования не Sun JVM SocketOutputStream, хотя оба не избегают того факта, что клиент завершил работу)

Ответы на вопрос(12)

Ваш ответ на вопрос