You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by tm...@apache.org on 2021/07/13 08:07:33 UTC

[sling-org-apache-sling-distribution-journal] branch master updated: SLING-10603 - Address sonar probable bug report (#84)

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

tmaret pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git


The following commit(s) were added to refs/heads/master by this push:
     new d10c77d  SLING-10603 - Address sonar probable bug report (#84)
d10c77d is described below

commit d10c77d18fcd0d099180c89918b249921254977e
Author: Timothee Maret <tm...@apache.org>
AuthorDate: Tue Jul 13 10:07:28 2021 +0200

    SLING-10603 - Address sonar probable bug report (#84)
    
    * Avoid NPE
    * Remove unused imports
---
 .../sling/distribution/journal/bookkeeper/BookKeeperFactory.java     | 1 -
 .../apache/sling/distribution/journal/impl/publisher/AgentState.java | 2 ++
 .../apache/sling/distribution/journal/queue/impl/PubQueueCache.java  | 3 ++-
 .../sling/distribution/journal/queue/impl/PubQueueProviderImpl.java  | 5 ++---
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperFactory.java b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperFactory.java
index 3b4b0e0..3d1d449 100644
--- a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperFactory.java
+++ b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeperFactory.java
@@ -30,7 +30,6 @@ import org.apache.sling.distribution.journal.shared.DistributionMetricsService;
 import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferencePolicyOption;
 import org.osgi.service.event.EventAdmin;
 
 @Component(service = BookKeeperFactory.class)
diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/AgentState.java b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/AgentState.java
index 0b475fb..b0cd53e 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/AgentState.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/AgentState.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.distribution.journal.impl.publisher;
 
+import java.util.Objects;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
@@ -54,6 +55,7 @@ public class AgentState {
     private static Stream<DistributionQueueStatus> queueStatuses(DistributionAgent agent) {
         return StreamSupport.stream(agent.getQueueNames().spliterator(), true)
                 .map(agent::getQueue)
+                .filter(Objects::nonNull)
                 .map(DistributionQueue::getStatus);
     }
 
diff --git a/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueCache.java b/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueCache.java
index 09615e7..bdb6e94 100644
--- a/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueCache.java
+++ b/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueCache.java
@@ -21,6 +21,7 @@ package org.apache.sling.distribution.journal.queue.impl;
 
 import static java.util.Collections.singletonList;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.stream.Collectors.groupingBy;
 
 import java.io.Closeable;
@@ -65,7 +66,7 @@ public class PubQueueCache {
 
     private static final Logger LOG = LoggerFactory.getLogger(PubQueueCache.class);
 
-    private static final long MAX_FETCH_WAIT_MS = 60 * 1000l; // 1 minute
+    private static final long MAX_FETCH_WAIT_MS = MINUTES.toMillis(1); // 1 minute
 
     /**
      * (pubAgentName x OffsetQueue)
diff --git a/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueProviderImpl.java b/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueProviderImpl.java
index a71acf3..eebbc4c 100644
--- a/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueProviderImpl.java
+++ b/src/main/java/org/apache/sling/distribution/journal/queue/impl/PubQueueProviderImpl.java
@@ -181,12 +181,11 @@ public class PubQueueProviderImpl implements PubQueueProvider, Runnable {
         AgentId subAgentId = new AgentId(StringUtils.substringBeforeLast(queueName, "-error"));
         String errorQueueKey = getErrorQueueKey(pubAgentName, subAgentId.getSlingId(), subAgentId.getAgentName());
         OffsetQueue<Long> errorQueue = errorQueues.getOrDefault(errorQueueKey, new OffsetQueueImpl<>());
-        long headOffset = errorQueue.getHeadOffset();
+        final Long minReferencedOffset = errorQueue.getHeadItem();
         final OffsetQueue<DistributionQueueItem> agentQueue;
-        if (headOffset < 0) {
+        if (minReferencedOffset == null) {
             agentQueue = new OffsetQueueImpl<>();
         } else {
-            long minReferencedOffset = errorQueue.getItem(headOffset);
             agentQueue = getOffsetQueue(pubAgentName, minReferencedOffset);
         }