Поведение javax.smartcardio.Card.disconnect (логический сброс) в JDK 7u79?

Согласнозаметки о выпуске JRE 7u72:

Изменение в поведении метода javax.smartcardio.Card.disconnect (логический сброс)

До выпусков JDK 8u20 и JDK 7u72 метод javax.smartcardio.Card.disconnect (логический сброс) имел инвертированную логику для передаваемого ему логического значения «сброс». Карта была сброшена при отключении, если ему было передано значение false, и наоборот. Начиная с JDK 7u72 и JDK 8u20, было реализовано правильное поведение согласно документации API.

Чтобы обеспечить обратную совместимость для пользователей, которые полагаются на старое поведение, было введено новое системное свойство. Следующая опция командной строки может использоваться для принудительного использования старого неработающего поведения:

-Dsun.security.smartcardio.invertCardReset = верно

Это свойство установлено по умолчанию для 7u72 и более поздних выпусков обновлений JDK 7. По умолчанию в этой области для выпусков обновлений JDK 7 не будет замечено никаких поведенческих изменений.

Также следующий параметр командной строки может быть использован для обеспечения нового правильного поведения:

-Dsun.security.smartcardio.invertCardReset = ложь

Это значение по умолчанию для 8u20 и более поздних выпусков обновлений JDK 8. В будущих выпусках Java это свойство будет игнорироваться / отключаться, а поведение метода отключения по умолчанию будет соответствовать API.

При звонкеjavax.smartcardio.Card.disconnect(true) карта не будет сброшена, даже если у меня JDK 7u79. Когда я прохожуfalse или используйте опцию-Dsun.security.smartcardio.invertCardReset=true до ВМ все отлично работает. Как это могло произойти? Более старая версия JRE поставляется с JDK 7u79?

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

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