This is an automated email from the ASF dual-hosted git repository. joerghoh pushed a commit to branch feature/SLING-8759 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git
commit 92516dfaaf11fac4ee9ac66fca71cceaf63d6903 Author: Joerg Hoh <[email protected]> AuthorDate: Sat Apr 10 17:58:56 2021 +0200 SLING-8759 use computeIfAbsent to reduce code size --- .../org/apache/sling/api/adapter/SlingAdaptable.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/apache/sling/api/adapter/SlingAdaptable.java b/src/main/java/org/apache/sling/api/adapter/SlingAdaptable.java index 5adf0ce..fa3c5b4 100644 --- a/src/main/java/org/apache/sling/api/adapter/SlingAdaptable.java +++ b/src/main/java/org/apache/sling/api/adapter/SlingAdaptable.java @@ -94,22 +94,12 @@ public abstract class SlingAdaptable implements Adaptable { */ @SuppressWarnings("unchecked") public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) { - AdapterType result = null; synchronized ( this ) { - if ( adaptersCache != null ) { - result = (AdapterType) adaptersCache.get(type); - } - if ( result == null ) { - final AdapterManager mgr = ADAPTER_MANAGER; - result = (mgr == null ? null : mgr.getAdapter(this, type)); - if ( result != null ) { - if ( adaptersCache == null ) { - adaptersCache = new HashMap<Class<?>, Object>(); - } - adaptersCache.put(type, result); - } + if (adaptersCache == null) { + adaptersCache = new HashMap<Class<?>, Object>(); } + return (AdapterType) adaptersCache.computeIfAbsent(type, + (klazz) -> ADAPTER_MANAGER.getAdapter(this, type)); } - return result; } }
