diff options
author | Neil Fuller <nfuller@google.com> | 2014-06-18 17:36:23 +0100 |
---|---|---|
committer | Neil Fuller <nfuller@google.com> | 2014-06-18 18:23:00 +0100 |
commit | 142b0399f6ea20d46033fba94718bb22c3b4b7cc (patch) | |
tree | 89806becf2e2d1b6663c6be5ecf3b99c00698079 /luni/src | |
parent | 7bc855c89a147c754b3d3367d9313a422ee1c277 (diff) | |
download | libcore-142b0399f6ea20d46033fba94718bb22c3b4b7cc.zip libcore-142b0399f6ea20d46033fba94718bb22c3b4b7cc.tar.gz libcore-142b0399f6ea20d46033fba94718bb22c3b4b7cc.tar.bz2 |
CTS fix: Signature2Test.test_clone()
Previously it would throw a NullPointerException. Fixing that
rendered the Signature cloneable and the test assertions failing.
The test now passes but is of questionable value except to prove
the absence of RuntimeException.
Change-Id: I2a5b160f0914837b37b801e16b8a3717d00fd94e
Diffstat (limited to 'luni/src')
-rw-r--r-- | luni/src/main/java/java/security/Signature.java | 2 | ||||
-rw-r--r-- | luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/luni/src/main/java/java/security/Signature.java b/luni/src/main/java/java/security/Signature.java index 7dd7d93..a39d59b 100644 --- a/luni/src/main/java/java/security/Signature.java +++ b/luni/src/main/java/java/security/Signature.java @@ -703,7 +703,7 @@ public abstract class Signature extends SignatureSpi { @Override public Object clone() throws CloneNotSupportedException { - SignatureSpi spi = (SignatureSpi) spiImpl.clone(); + SignatureSpi spi = spiImpl != null ? (SignatureSpi) spiImpl.clone() : null; return new SignatureImpl(getAlgorithm(), getProvider(), spi); } diff --git a/luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java b/luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java index 7886e3e..ad084e1 100644 --- a/luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java +++ b/luni/src/test/java/org/apache/harmony/security/tests/java/security/Signature2Test.java @@ -68,7 +68,17 @@ public class Signature2Test extends junit.framework.TestCase { * java.security.Signature#clone() */ public void test_clone() throws Exception { + // A Signature may be cloneable according to the API, in practice the implementation isn't + // once it has been initialized. Checking for runtime exceptions rather than useful + // behavior. Signature s = Signature.getInstance("DSA"); + Signature clone = (Signature) s.clone(); + assertNotNull(clone); + assertEquals(s.getAlgorithm(), clone.getAlgorithm()); + assertEquals(s.getProvider(), clone.getProvider()); + + KeyPair keyPair = getDsaKeys(); + s.initSign(keyPair.getPrivate()); try { s.clone(); fail(); |