У меня есть ObjectReader
синтаксический анализ Json-входа из нижележащего сокета InputStream
следующим образом:
jsonInput.readValue(handlerSocket.getInputStream());
, где jsonInput
- объект ObjectReader
.
Iнастроил jsonInput
для анализа определенного типа с помощью метода readFor(Class<?>)
по умолчанию, предоставленного родителем ObjectMapper
.В конце выполнения часть последовательности выключения включает в себя отключение входа сокета, то есть вызов handlerSocket.shutdownInput()
и в соответствии с Socket API Javadocs относительно shutdownInput()
:
Placesвходной поток для этого сокета в конце потока.Любые данные, отправленные на сторону входного потока сокета, подтверждаются, а затем молча отбрасываются.Если вы читаете из входного потока сокета после вызова этого метода в сокете, доступный метод потока вернет 0, а его методы чтения вернут -1 (конец потока).
Я быссылался на документацию Jackson , касающуюся этой конкретной реализации readValue()
, но соответствующей информации практически нет.Мой вопрос в том, как Джексон относится к сценариям типа «конец потока», таким как этот?null
будет возвращено?Исключение при разборе?Буду признателен за ваши идеи.