Я очень сбит с толку, так как здесь нет переполнения буфера.Вот мой код
HandshakeStatus beforeWrapHandshakeStatus = sslEngine.getHandshakeStatus();
if(beforeWrapHandshakeStatus != HandshakeStatus.NEED_WRAP)
throw new IllegalStateException("we should only be calling this method when hsStatus=NEED_WRAP. hsStatus="+beforeWrapHandshakeStatus);
SSLEngineResult result = sslEngine.wrap(SslMementoImpl.EMPTY, engineToSocketData);
lastStatus = result.getStatus();
hsStatus = result.getHandshakeStatus();
if(engineToSocketData.position() == 0)
throw new IllegalStateException("engine told me to wrap and didn't output data. result="+result +" before wrap hsStatus="+beforeWrapHandshakeStatus);
, а вот исключение
java.lang.IllegalStateException: движок сказал мне обернуть и не выводил данные.result = Status = OK HandshakeStatus = NEED_WRAP bytesConsumed = 0 bytesProduced = 0 перед переносом hsStatus = NEED_WRAP
Это ошибка jdk?Это не должно указывать мне на WRAP, а затем ничего не выводить с Status = Ok, верно.Нужно поставить Status в BufferOverflow или фактически генерировать байты, верно?