From 202e2619d3e0812a4fae8a4d86d2bf23627cb3aa Mon Sep 17 00:00:00 2001 From: mullan Date: Wed, 8 Dec 2010 10:21:48 -0800 Subject: [PATCH] 6998860: Signed jar file verification is currently creating many extra new Sun providers. Reviewed-by: mchung --- .../sun/security/util/ManifestEntryVerifier.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/share/classes/sun/security/util/ManifestEntryVerifier.java b/src/share/classes/sun/security/util/ManifestEntryVerifier.java index 2fe98e500..3bcc18a74 100644 --- a/src/share/classes/sun/security/util/ManifestEntryVerifier.java +++ b/src/share/classes/sun/security/util/ManifestEntryVerifier.java @@ -44,6 +44,16 @@ public class ManifestEntryVerifier { private static final Debug debug = Debug.getInstance("jar"); + /** + * Holder class to lazily load Sun provider. NOTE: if + * Providers.getSunProvider returned a cached provider, we could avoid the + * need for caching the provider with this holder class; we should try to + * revisit this in JDK 8. + */ + private static class SunProviderHolder { + private static final Provider instance = Providers.getSunProvider(); + } + /** the created digest objects */ HashMap createdDigests; @@ -125,7 +135,7 @@ public class ManifestEntryVerifier { try { digest = MessageDigest.getInstance - (algorithm, Providers.getSunProvider()); + (algorithm, SunProviderHolder.instance); createdDigests.put(algorithm, digest); } catch (NoSuchAlgorithmException nsae) { // ignore -- GitLab