From 697ec31ecf5dea2a97b115bc436935e779150615 Mon Sep 17 00:00:00 2001 From: Anthony Scarpino Date: Wed, 17 Aug 2016 16:03:52 -0700 Subject: [PATCH] 8156192: Provider#compute and #merge methods expect wrong permission & #compute ClassCastException even with wrong permission Reviewed-by: mullan, jnimeh --- .../share/classes/java/security/Provider.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/security/Provider.java b/jdk/src/java.base/share/classes/java/security/Provider.java index f9b0583df84..1d9d072b700 100644 --- a/jdk/src/java.base/share/classes/java/security/Provider.java +++ b/jdk/src/java.base/share/classes/java/security/Provider.java @@ -601,7 +601,7 @@ public abstract class Provider extends Properties { public synchronized Object compute(Object key, BiFunction remappingFunction) { check("putProviderProperty." + name); - check("removeProviderProperty" + name); + check("removeProviderProperty." + name); if (debug != null) { debug.println("Compute " + name + " provider property " + key); @@ -632,7 +632,7 @@ public abstract class Provider extends Properties { public synchronized Object computeIfAbsent(Object key, Function mappingFunction) { check("putProviderProperty." + name); - check("removeProviderProperty" + name); + check("removeProviderProperty." + name); if (debug != null) { debug.println("ComputeIfAbsent " + name + " provider property " + @@ -662,7 +662,7 @@ public abstract class Provider extends Properties { public synchronized Object computeIfPresent(Object key, BiFunction remappingFunction) { check("putProviderProperty." + name); - check("removeProviderProperty" + name); + check("removeProviderProperty." + name); if (debug != null) { debug.println("ComputeIfPresent " + name + " provider property " + @@ -695,7 +695,7 @@ public abstract class Provider extends Properties { public synchronized Object merge(Object key, Object value, BiFunction remappingFunction) { check("putProviderProperty." + name); - check("removeProviderProperty" + name); + check("removeProviderProperty." + name); if (debug != null) { debug.println("Merge " + name + " provider property " + key); @@ -904,8 +904,8 @@ public abstract class Provider extends Properties { if (!checkLegacy(key)) { return null; } - legacyStrings.computeIfAbsent((String) key, - (Function) remappingFunction); + legacyStrings.compute((String) key, + (BiFunction) remappingFunction); } return super.compute(key, remappingFunction); }