jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java
changeset 15010 ec6b49ce42b1
parent 15008 6a494f8ba5b5
child 16909 78a1749a43e2
--- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java	Mon Jan 07 14:40:07 2013 -0800
+++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java	Tue Jan 08 11:55:21 2013 -0800
@@ -91,7 +91,12 @@
     /* Are we debugging? -- for developers */
     static final boolean debug = false;
 
-    static final SecureRandom RANDOM = new SecureRandom();
+    // lazy initialize SecureRandom to avoid potential recursion if Sun
+    // provider has not been installed yet
+    private static class SecureRandomHolder {
+        static final SecureRandom RANDOM = new SecureRandom();
+    }
+    static SecureRandom getRandom() { return SecureRandomHolder.RANDOM; }
 
     public SunJCE() {
         /* We are the "SunJCE" provider */