This is an automated email from the ASF dual-hosted git repository. tmaret pushed a commit to branch SLING-10603 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git
commit ce53d488514f625e9c04552f9e5bc9a38a41264c Author: tmaret <[email protected]> AuthorDate: Tue Jul 13 09:38:12 2021 +0200 SLING-10603 - Address sonar probable bug report * Avoid NPE * Remove unused imports SLING-10603 - Remove unused import SLING-10603 - Remove unused import SLING-10603 - Avoid NPE --- .../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); }
