Verhalten von javax.smartcardio.Card.disconnect (boolescher Reset) in JDK 7u79?

Laut demrelease notes von JRE 7u72:

Change in javax.smartcardio.Card.disconnect (boolean reset) method behaviour

Vor den Releases JDK 8u20 und JDK 7u72 hatte die Methode javax.smartcardio.Card.disconnect (boolesches Zurücksetzen) eine invertierte Logik für den zurückgesetzten booleschen Wert. Die Karte wurde beim Trennen zurückgesetzt, wenn false übergeben wurde, und umgekehrt. Ab JDK 7u72 und JDK 8u20 wurde das korrekte Verhalten gemäß API-Dokumentation implementiert.

Um Benutzern, die sich auf das alte Verhalten verlassen, Abwärtskompatibilität zu bieten, wurde eine neue Systemeigenschaft eingeführt. Die folgende Befehlszeilenoption kann verwendet werden, um das alte fehlerhafte Verhalten zu erzwingen:

-Dsun.security.smartcardio.invertCardReset = true

Diese Eigenschaft ist standardmäßig für JDK 7-Updateversionen mit 7u72 und höher festgelegt. Standardmäßig wird in diesem Bereich für JDK 7-Update-Versionen keine Verhaltensänderung festgestellt.

Auch die folgende Befehlszeilenoption kann verwendet werden, um das neue korrekte Verhalten zu erzwingen:

-Dsun.security.smartcardio.invertCardReset = false

Dies ist die Standardeinstellung für JDK 8-Updateversionen ab 8u20. In zukünftigen Java-Versionen wird die Eigenschaft ignoriert / deaktiviert und das Verhalten der Standardtrennungsmethode entspricht der API.

Wenn Sie @ anrufjavax.smartcardio.Card.disconnect(true) Die Karte wird nicht zurückgesetzt, obwohl ich JDK 7u79 habe. Wenn ich an @ vorbeigefalse oder benutze die Option-Dsun.security.smartcardio.invertCardReset=true an die VM, alles funktioniert gut. Wie konnte das sein? Wird eine ältere Version der JRE mit JDK 7u79 ausgeliefert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage