You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/05/17 07:49:21 UTC

[maven-build-cache-extension] 01/02: Fix possible NPE caused by concurrency

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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-build-cache-extension.git

commit 0191a6f73e40ccf6edb9a3ea28299e6325feaae2
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon May 16 20:56:36 2022 +0200

    Fix possible NPE caused by concurrency
---
 .../java/org/apache/maven/buildcache/RemoteCacheRepositoryImpl.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/maven/buildcache/RemoteCacheRepositoryImpl.java b/src/main/java/org/apache/maven/buildcache/RemoteCacheRepositoryImpl.java
index b4664fd..b04e3e8 100644
--- a/src/main/java/org/apache/maven/buildcache/RemoteCacheRepositoryImpl.java
+++ b/src/main/java/org/apache/maven/buildcache/RemoteCacheRepositoryImpl.java
@@ -231,7 +231,7 @@ public class RemoteCacheRepositoryImpl implements RemoteCacheRepository, Closeab
         }
     }
 
-    private final AtomicReference<Optional<CacheReport>> cacheReportSupplier = new AtomicReference<>();
+    private final AtomicReference<CacheReport> cacheReportSupplier = new AtomicReference<>();
 
     @Nonnull
     @Override
@@ -285,7 +285,7 @@ public class RemoteCacheRepositoryImpl implements RemoteCacheRepository, Closeab
 
     private Optional<CacheReport> findCacheInfo()
     {
-        Optional<CacheReport> report = cacheReportSupplier.get();
+        Optional<CacheReport> report = Optional.ofNullable( cacheReportSupplier.get() );
         if ( !report.isPresent() )
         {
             try
@@ -299,7 +299,7 @@ public class RemoteCacheRepositoryImpl implements RemoteCacheRepository, Closeab
                         cacheConfig.getBaselineCacheUrl(), e );
                 report = Optional.empty();
             }
-            cacheReportSupplier.compareAndSet( null, report );
+            cacheReportSupplier.compareAndSet( null, report.orElse( null ) );
         }
         return report;
     }