You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2021/04/10 16:10:58 UTC

[sling-org-apache-sling-api] branch feature/SLING-8759 created (now 92516df)

This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a change to branch feature/SLING-8759
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git.


      at 92516df  SLING-8759 use computeIfAbsent to reduce code size

This branch includes the following new commits:

     new 92516df  SLING-8759 use computeIfAbsent to reduce code size

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[sling-org-apache-sling-api] 01/01: SLING-8759 use computeIfAbsent to reduce code size

Posted by jo...@apache.org.
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 <jh...@adobe.com>
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;
     }
 }