Согласно release notes of JRE 7u72:Поведение javax.smartcardio.Card.disconnect (булевский сброс) в JDK 7u79?
Изменения в javax.smartcardio.Card.disconnect (булев) сброс метод поведения
До JDK 8u20 и JDK 7u72 выпусков javax.smartcardio.Card .disconnect (boolean reset) инвертировал логику для логического значения «reset», переданного ей. Карта была сброшена после отключения, если к ней была передана ложь, и наоборот. Начиная с с 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
VM, все будет хорошо. Как это могло произойти? Является ли более старая версия JRE поставляемой с JDK 7u79?
Часть о передаче 'false' интересно, но часть о передаче' true' лишь подтверждает истинность документации вы цитированной , Неясно, что вы спрашиваете. – EJP
@EJP Я спрашиваю, почему карта не сбрасывается, когда я передаю 'true' при использовании JDK 7u79. –