From e525ba8e6ccfe6fd514ee115c97413f19f7700e8 Mon Sep 17 00:00:00 2001
From: Andrew Haley <aph@redhat.com>
Date: Mon, 12 Dec 2005 17:29:45 +0000
Subject: [PATCH] VMCompiler.java: Directly generate a new instance of
 gnu.java.security.provider.MD5.

2005-12-12  Andrew Haley  <aph@redhat.com>

        * java/lang/VMCompiler.java: Directly generate a new instance of
        gnu.java.security.provider.MD5.

From-SVN: r108421
---
 libjava/ChangeLog                 |  5 +++++
 libjava/java/lang/VMCompiler.java | 28 ++++++++++++----------------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index aef9f35eb6d5..0f7225bf335b 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-12  Andrew Haley  <aph@redhat.com>
+
+	* java/lang/VMCompiler.java: Directly generate a new instance of
+	gnu.java.security.provider.MD5.
+
 2005-12-08  Andrew Haley  <aph@redhat.com>
 
 	PR libgcj/25265
diff --git a/libjava/java/lang/VMCompiler.java b/libjava/java/lang/VMCompiler.java
index 27523f6e3ff6..47920119f677 100644
--- a/libjava/java/lang/VMCompiler.java
+++ b/libjava/java/lang/VMCompiler.java
@@ -80,22 +80,18 @@ final class VMCompiler
   private static Vector precompiledMapFiles;
 
   // We create a single MD5 engine and then clone it whenever we want
-  // a new one.  This is simpler than trying to find a new one each
-  // time, and it avoids potential deadlocks due to class loader
-  // oddities.
-  private static final MessageDigest md5Digest;
-
-  static
-  {
-    try
-      {
-	md5Digest = MessageDigest.getInstance("MD5");
-      }
-    catch (NoSuchAlgorithmException _)
-      {
-	md5Digest = null;
-      }
-  }
+  // a new one.
+
+  // We don't use 
+  //
+  // md5Digest = MessageDigest.getInstance("MD5");
+  //
+  // here because that loads a great deal of security provider code as
+  // interpreted bytecode -- before we're able to use this class to
+  // load precompiled classes.
+
+  private static final MessageDigest md5Digest
+    = new gnu.java.security.provider.MD5();
 
   static
   {
-- 
GitLab