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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git


The following commit(s) were added to refs/heads/master by this push:
     new d1cd9e2a Lookup key in map only once
d1cd9e2a is described below

commit d1cd9e2a4f44f41a07b8db4634a41cf5965c913b
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu Dec 1 10:11:32 2022 -0500

    Lookup key in map only once
    
    Use Java Map API better
---
 .../main/java/org/apache/commons/vfs2/cache/SoftRefFilesCache.java | 3 ++-
 .../org/apache/commons/vfs2/impl/DefaultFileSystemManager.java     | 7 +------
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/cache/SoftRefFilesCache.java
 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/cache/SoftRefFilesCache.java
index 78a4705c..31404641 100644
--- 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/cache/SoftRefFilesCache.java
+++ 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/cache/SoftRefFilesCache.java
@@ -190,7 +190,8 @@ public class SoftRefFilesCache extends AbstractFilesCache {
             final Reference<FileObject> ref = createReference(fileObject, 
refQueue);
             final FileSystemAndNameKey key = new 
FileSystemAndNameKey(fileObject.getFileSystem(), fileObject.getName());
 
-            if (files.containsKey(fileObject.getName()) && 
files.get(fileObject.getName()).get() != null) {
+            final Reference<FileObject> reference = 
files.get(fileObject.getName());
+            if (reference != null && reference.get() != null) {
                 return false;
             }
             final Reference<FileObject> old = files.put(fileObject.getName(), 
ref);
diff --git 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileSystemManager.java
 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileSystemManager.java
index 800588cc..b7d87572 100644
--- 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileSystemManager.java
+++ 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileSystemManager.java
@@ -238,12 +238,7 @@ public class DefaultFileSystemManager implements 
FileSystemManager {
     public void addOperationProvider(final String[] schemes, final 
FileOperationProvider operationProvider)
             throws FileSystemException {
         for (final String scheme : schemes) {
-            if (!operationProviders.containsKey(scheme)) {
-                final List<FileOperationProvider> providers = new 
ArrayList<>();
-                operationProviders.put(scheme, providers);
-            }
-
-            final List<FileOperationProvider> providers = 
operationProviders.get(scheme);
+            final List<FileOperationProvider> providers = 
operationProviders.computeIfAbsent(scheme, k -> new ArrayList<>());
 
             if (providers.contains(operationProvider)) {
                 throw new 
FileSystemException("vfs.operation/operation-provider-already-added.error", 
scheme);

Reply via email to