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 <[email protected]>
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);