You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/07/11 05:48:48 UTC

svn commit: r420696 - in /incubator/harmony/enhanced/classlib/trunk/modules/crypto/src: main/java/javax/crypto/ExemptionMechanism.java test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java

Author: mloenko
Date: Mon Jul 10 20:48:47 2006
New Revision: 420696

URL: http://svn.apache.org/viewvc?rev=420696&view=rev
Log:
fixes for HARMONY-762
[classlib][security]compatibility: exception order javax.crypto.ExemptionMechanism.getInstance(null,Provider)

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/ExemptionMechanism.java
    incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/ExemptionMechanism.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/ExemptionMechanism.java?rev=420696&r1=420695&r2=420696&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/ExemptionMechanism.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/main/java/javax/crypto/ExemptionMechanism.java Mon Jul 10 20:48:47 2006
@@ -107,15 +107,15 @@
     public static final ExemptionMechanism getInstance(String algorithm,
             String provider) throws NoSuchAlgorithmException,
             NoSuchProviderException {
-        if (algorithm == null) {
-            throw new NullPointerException("Algorithm is null");
-        }
         if (provider == null) {
             throw new IllegalArgumentException("Provider is null");
         }
         Provider impProvider = Security.getProvider(provider);
         if (impProvider == null) {
             throw new NoSuchProviderException(provider);
+        }
+        if (algorithm == null) {
+            throw new NullPointerException("Algorithm is null");
         }
         return getInstance(algorithm, impProvider);
     }

Modified: incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java?rev=420696&r1=420695&r2=420696&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/crypto/src/test/api/java/org/apache/harmony/crypto/tests/javax/crypto/ExemptionMechanismTest.java Mon Jul 10 20:48:47 2006
@@ -22,89 +22,80 @@
 package org.apache.harmony.crypto.tests.javax.crypto;
 
 import java.security.InvalidKeyException;
+import java.security.NoSuchProviderException;
 import java.security.Provider;
 
 import javax.crypto.ExemptionMechanism;
 import javax.crypto.ExemptionMechanismSpi;
 
+import junit.framework.TestCase;
+
 import org.apache.harmony.crypto.tests.support.MyExemptionMechanismSpi;
 import org.apache.harmony.security.tests.support.SpiEngUtils;
-import org.apache.harmony.security.tests.support.SpiEngUtils.MyProvider;
 
-import junit.framework.TestCase;
 /**
  * Tests for <code>ExemptionMechanism</code> class constructors and methods
  * 
  */
 
 public class ExemptionMechanismTest extends TestCase {
-    
-    public static final String srvExemptionMechanism = "ExemptionMechanism";
-    
+
+    private static final String srvExemptionMechanism = "ExemptionMechanism";
+
     private static final String defaultAlg = "EMech";
-    
+
     private static final String ExemptionMechanismProviderClass = "org.apache.harmony.crypto.tests.support.MyExemptionMechanismSpi";
 
     /**
-     * Constructor for SecurityManagerFactoryTest2.
-     * 
-     * @param arg0
-     */
-    public ExemptionMechanismTest(String arg0) {
-        super(arg0);
-    }
-   
-    /**
      * Test for <code>ExemptionMechanism</code> constructor 
      * Assertion: cretes new object using provider and mechanism name
      */
     public void testExemptionMechanism() throws Exception {
-        Provider mProv = (new SpiEngUtils()).new MyProvider("MyExMechProvider", "Provider for ExemptionMechanism testing", 
-                srvExemptionMechanism.concat(".").concat(defaultAlg), 
+        Provider mProv = (new SpiEngUtils()).new MyProvider("MyExMechProvider",
+                "Provider for ExemptionMechanism testing",
+                srvExemptionMechanism.concat(".").concat(defaultAlg),
                 ExemptionMechanismProviderClass);
-        
+
         ExemptionMechanismSpi spi = new MyExemptionMechanismSpi();
-        ExemptionMechanism em = new MyMechanism(spi, mProv, defaultAlg);
-        
+
+        ExemptionMechanism em = new ExemptionMechanism(spi, mProv, defaultAlg) {};
         assertEquals("Incorrect provider", em.getProvider(), mProv);
         assertEquals("Incorrect algorithm", em.getName(), defaultAlg);
         try {
             em.init(null);
             fail("InvalidKeyException must be thrown");
-        } catch (InvalidKeyException e) {
-        }
+        } catch (InvalidKeyException e) {}
+
         try {
             em.getOutputSize(100);
             fail("IllegalStateException must be thrown");
-        } catch (IllegalStateException e) {
-        }        
-        em = new MyMechanism(null, null, null);
+        } catch (IllegalStateException e) {}
+
+
+        em = new ExemptionMechanism(null, null, null) {};
         assertNull("Incorrect mechanism", em.getName());
         assertNull("Incorrect provider", em.getProvider());
         try {
             em.init(null);
             fail("NullPointerException must be thrown");
-        } catch (NullPointerException e) {
-        }
+        } catch (NullPointerException e) {}
         try {
             em.getOutputSize(100);
             fail("IllegalStateException must be thrown");
-        } catch (IllegalStateException e) {
-        }        
+        } catch (IllegalStateException e) {}
     }
-}
-
-class MyMechanism extends ExemptionMechanism {
 
-    public MyMechanism(ExemptionMechanismSpi spi, Provider prov, String mechanism) {
-        super(spi, prov, mechanism);
-    }
-
-    public void finalize() {
+    /**
+     * @tests javax/crypto/ExemptionMechanism#getInstance(String algorithm, String provider)
+     * Checks exception order
+     */
+    public void testGetInstance() throws Exception {
+        //Regression for HARMONY-762
         try {
-            super.finalize();
-        } catch (Throwable e) {
-            throw new RuntimeException("finalize was broken", e);
+            ExemptionMechanism.getInstance((String) null, "aaa");
+            fail("NoSuchProviderException must be thrown");
+        } catch (NoSuchProviderException pe) {
+            //expected
         }
     }
 }