aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/security/Signature.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/security/Signature.java')
-rw-r--r--libjava/java/security/Signature.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/libjava/java/security/Signature.java b/libjava/java/security/Signature.java
index dff2e2d..1e99a7b 100644
--- a/libjava/java/security/Signature.java
+++ b/libjava/java/security/Signature.java
@@ -41,6 +41,8 @@ import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.security.spec.AlgorithmParameterSpec;
+import gnu.java.security.Engine;
+
/**
* <p>This <code>Signature</code> class is used to provide applications the
* functionality of a digital signature algorithm. Digital signatures are used
@@ -237,7 +239,15 @@ public abstract class Signature extends SignatureSpi
throw new IllegalArgumentException("Illegal provider");
Signature result = null;
- Object o = Engine.getInstance(SIGNATURE, algorithm, provider);
+ Object o = null;
+ try
+ {
+ o = Engine.getInstance(SIGNATURE, algorithm, provider);
+ }
+ catch (java.lang.reflect.InvocationTargetException ite)
+ {
+ throw new NoSuchAlgorithmException(algorithm);
+ }
if (o instanceof SignatureSpi)
{