gnodet commented on code in PR #241:
URL: https://github.com/apache/maven-resolver/pull/241#discussion_r1100319482


##########
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java:
##########
@@ -80,14 +76,14 @@ public DataPool( RepositorySystemSession session )
 
         if ( cache != null )
         {
-            artifacts = (ObjectPool<Artifact>) cache.get( session, 
ARTIFACT_POOL );
-            dependencies = (ObjectPool<Dependency>) cache.get( session, 
DEPENDENCY_POOL );
-            descriptors = (Map<Object, WeakReference<Descriptor>>) cache.get( 
session, DESCRIPTORS );
+            artifacts = (ConcurrentHashMap<Artifact, Artifact>) cache.get( 
session, ARTIFACT_POOL );
+            dependencies = (ConcurrentHashMap<Dependency, Dependency>) 
cache.get( session, DEPENDENCY_POOL );
+            descriptors = (ConcurrentHashMap<Object, Descriptor>) cache.get( 
session, DESCRIPTORS );

Review Comment:
   And with a default method in the interface ?  `Map` as tons of them...
   ```
       default Object computeIfAbsent( RepositorySystemSession session, Object 
key, Supplier<Object> supplier )
       {
           Object value = get( session, key );
           if ( value == null )
           {
               value = supplier.get();
               put( session, key, value );
           }
           return value;
       }
   ```
   This keeps compatibility.  The default implementation should of course 
leverage the `cache.computeIfAbsent()` method of the underlying 
`ConcurrentHashMap`...
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to