Index: modules/security/src/common/javasrc/java/security/Signature.java =================================================================== --- modules/security/src/common/javasrc/java/security/Signature.java.orig 2006-03-28 19:38:57.000000000 +0100 +++ modules/security/src/common/javasrc/java/security/Signature.java 2006-03-28 19:46:08.000000000 +0100 @@ -112,6 +112,9 @@ */ public static Signature getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { + if (algorithm == null) { + throw new NullPointerException("Algorithm is null"); + } if ((provider == null) || (provider.length() == 0)) { throw new IllegalArgumentException( "Provider is null or empty string"); @@ -130,12 +133,12 @@ */ public static Signature getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException { - if (provider == null) { - throw new IllegalArgumentException("Provider is null"); - } if (algorithm == null) { throw new NullPointerException("Algorithm is null"); } + if (provider == null) { + throw new IllegalArgumentException("Provider is null"); + } Signature result; synchronized (engine) { engine.getInstance(algorithm, provider, null); Index: modules/security/test/common/unit/java/security/SignatureTest2.java =================================================================== --- modules/security/test/common/unit/java/security/SignatureTest2.java.orig 2006-03-28 19:38:57.000000000 +0100 +++ modules/security/test/common/unit/java/security/SignatureTest2.java 2006-03-28 20:19:34.000000000 +0100 @@ -345,6 +345,31 @@ fail("verify() failed"); } } + + /** + * @tests java.security.Signature#getInstance(String,String) + * @tests java.security.Signature#getInstance(String,Provider) + */ + public void testNullPointerExpection() { + // Regression for HARMONY-266 + try { + Signature s = Signature.getInstance((String)null, + (String)null); + fail("Signature.getInstance((String)null,(String)null)"+ + " should throw NullPointerException"); + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + try { + Signature s = Signature.getInstance((String)null,""); + fail("Signature.getInstance((String)null,\"\")"+ + " should throw NullPointerException"); + } catch (Exception e) { + assertEquals("java.lang.NullPointerException", + e.getClass().getName()); + } + } private class MyProvider extends Provider { MyProvider() {