From 94adef75afd07441610f12c20b507bfab5b50ea7 Mon Sep 17 00:00:00 2001 From: Sergio Giro Date: Thu, 1 Sep 2016 18:03:15 +0100 Subject: java.security.Provider: port to jdk8u60 (second part) - Add overridings for HashMap operations Provider is a subclass of HashMap. When operations are on Strings, they must be processed as part of the algorithm->implementation mapping of the provider, and so these methods must be overriden accordingly. Newly overridden Methods added are: compute, computeIfAbsent, computeIfPresent, getOrDefault, merge, putIfAbsent, replace, replaceAll. - Check that classes and constructors are public when creating instances of services. - Cosmetic changes like use of {@code} instead of Bug: 29631070 Test: make droid docs; vogar ProviderTest Change-Id: I0238f4a48f31ddc50a3f18c27515023940d9ba02 --- api/current.txt | 9 +++++++++ api/system-current.txt | 9 +++++++++ api/test-current.txt | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/api/current.txt b/api/current.txt index 1effb419f1d7..6c22355fcea3 100644 --- a/api/current.txt +++ b/api/current.txt @@ -55181,16 +55181,25 @@ package java.security { public abstract class Provider extends java.util.Properties { ctor protected Provider(java.lang.String, double, java.lang.String); + method public synchronized java.lang.Object compute(java.lang.Object, java.util.function.BiFunction); + method public synchronized java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function); + method public synchronized java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction); method public synchronized void forEach(java.util.function.BiConsumer); method public java.lang.String getInfo(); method public java.lang.String getName(); + method public synchronized java.lang.Object getOrDefault(java.lang.Object, java.lang.Object); method public synchronized java.security.Provider.Service getService(java.lang.String, java.lang.String); method public synchronized java.util.Set getServices(); method public double getVersion(); + method public synchronized java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction); method public synchronized java.lang.Object put(java.lang.Object, java.lang.Object); method public synchronized void putAll(java.util.Map); + method public synchronized java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object); method protected synchronized void putService(java.security.Provider.Service); method protected synchronized void removeService(java.security.Provider.Service); + method public synchronized boolean replace(java.lang.Object, java.lang.Object, java.lang.Object); + method public synchronized java.lang.Object replace(java.lang.Object, java.lang.Object); + method public synchronized void replaceAll(java.util.function.BiFunction); } public static class Provider.Service { diff --git a/api/system-current.txt b/api/system-current.txt index 6f9b6795b01c..58514cdba3d7 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -58537,16 +58537,25 @@ package java.security { public abstract class Provider extends java.util.Properties { ctor protected Provider(java.lang.String, double, java.lang.String); + method public synchronized java.lang.Object compute(java.lang.Object, java.util.function.BiFunction); + method public synchronized java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function); + method public synchronized java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction); method public synchronized void forEach(java.util.function.BiConsumer); method public java.lang.String getInfo(); method public java.lang.String getName(); + method public synchronized java.lang.Object getOrDefault(java.lang.Object, java.lang.Object); method public synchronized java.security.Provider.Service getService(java.lang.String, java.lang.String); method public synchronized java.util.Set getServices(); method public double getVersion(); + method public synchronized java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction); method public synchronized java.lang.Object put(java.lang.Object, java.lang.Object); method public synchronized void putAll(java.util.Map); + method public synchronized java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object); method protected synchronized void putService(java.security.Provider.Service); method protected synchronized void removeService(java.security.Provider.Service); + method public synchronized boolean replace(java.lang.Object, java.lang.Object, java.lang.Object); + method public synchronized java.lang.Object replace(java.lang.Object, java.lang.Object); + method public synchronized void replaceAll(java.util.function.BiFunction); } public static class Provider.Service { diff --git a/api/test-current.txt b/api/test-current.txt index 2d146f82069b..3fa0ced81328 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -55261,16 +55261,25 @@ package java.security { public abstract class Provider extends java.util.Properties { ctor protected Provider(java.lang.String, double, java.lang.String); + method public synchronized java.lang.Object compute(java.lang.Object, java.util.function.BiFunction); + method public synchronized java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function); + method public synchronized java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction); method public synchronized void forEach(java.util.function.BiConsumer); method public java.lang.String getInfo(); method public java.lang.String getName(); + method public synchronized java.lang.Object getOrDefault(java.lang.Object, java.lang.Object); method public synchronized java.security.Provider.Service getService(java.lang.String, java.lang.String); method public synchronized java.util.Set getServices(); method public double getVersion(); + method public synchronized java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction); method public synchronized java.lang.Object put(java.lang.Object, java.lang.Object); method public synchronized void putAll(java.util.Map); + method public synchronized java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object); method protected synchronized void putService(java.security.Provider.Service); method protected synchronized void removeService(java.security.Provider.Service); + method public synchronized boolean replace(java.lang.Object, java.lang.Object, java.lang.Object); + method public synchronized java.lang.Object replace(java.lang.Object, java.lang.Object); + method public synchronized void replaceAll(java.util.function.BiFunction); } public static class Provider.Service { -- cgit v1.2.3-59-g8ed1b