-
CSR
-
Resolution: Approved
-
P3
-
None
-
behavioral
-
minimal
-
Java API
-
SE
Summary
Update the documentation comment in KeyStoreSpi.engineStore(KeyStore.LoadStoreParameter param)
and in KeyStore.store(KeyStore.LoadStoreParameter param)
to state that they can throw UnsupportedOperationException
.
Problem
The KeystoreSpi.engineStore(KeyStore.LoadStoreParameter param)
may throw UnsupportedOperationException
if the implementation does not support engineStore()
operation. The KeyStore.store(KeyStore.LoadStoreParameter param)
can throw UnsupportedOperationException
as it invokes KeystoreSpi.engineStore(KeyStore.LoadStoreParameter param)
. However, the comments for both methods do not document that UnsupportedOperationException
can be thrown.
Solution
The documentation comment in KeyStoreSpi.engineStore(KeyStore.LoadStoreParameter param)
and KeyStore.store(KeyStore.LoadStoreParameter param)
should be improved to state that UnsupportedOperationException
can be thrown. Appropriate javadoc tags @implSpec and @throws are added for description of UnsupportedOperationException
.
Specification
The following spec change is made to engineStore(KeyStore.LoadStoreParameter param)
in KeyStoreSpi
class:
/**
* Stores this keystore using the given
* {@code KeyStore.LoadStoreParameter}.
*
+ * @implSpec The default implementation throws
+ * an {@link UnsupportedOperationException}.
*
* @param param the {@code KeyStore.LoadStoreParameter}
* that specifies how to store the keystore,
* which may be {@code null}
*
* @throws IllegalArgumentException if the given
* {@code KeyStore.LoadStoreParameter}
* input is not recognized
* @throws IOException if there was an I/O problem with data
* @throws NoSuchAlgorithmException if the appropriate data integrity
* algorithm could not be found
* @throws CertificateException if any of the certificates included in
* the keystore data could not be stored
+ * @throws UnsupportedOperationException if the implementation does
+ * not support this operation
*
* @since 1.5
*/
public void engineStore(KeyStore.LoadStoreParameter param)
throws IOException, NoSuchAlgorithmException,
CertificateException
The following spec change is made to store(KeyStore.LoadStoreParameter param)
in KeyStore
class:
/**
* Stores this keystore using the given {@code LoadStoreParameter}.
*
* @param param the {@code LoadStoreParameter}
* that specifies how to store the keystore,
* which may be {@code null}
*
* @throws IllegalArgumentException if the given
* {@code LoadStoreParameter}
* input is not recognized
* @throws KeyStoreException if the keystore has not been initialized
* (loaded)
* @throws IOException if there was an I/O problem with data
* @throws NoSuchAlgorithmException if the appropriate data integrity
* algorithm could not be found
* @throws CertificateException if any of the certificates included in
* the keystore data could not be stored
+ * @throws UnsupportedOperationException if this operation is not supported
*
* @since 1.5
*/
public final void store(LoadStoreParameter param)
throws KeyStoreException, IOException,
NoSuchAlgorithmException, CertificateException
- csr of
-
JDK-8246005 KeyStoreSpi::engineStore(LoadStoreParameter) spec mismatch to its behavior
-
- Resolved
-