Skip to content

Commit 968432c

Browse files
committed
[Broker] Handle NPE when full key range isn't covered with active consumers (apache#11749)
(cherry picked from commit 8027ab4)
1 parent 79db72e commit 968432c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentStickyKeyDispatcherMultipleConsumers.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,12 @@ protected void sendMessagesToConsumers(ReadType readType, List<Entry> entries) {
175175
for (Entry entry : entries) {
176176
int stickyKeyHash = getStickyKeyHash(entry);
177177
Consumer c = selector.select(stickyKeyHash);
178-
groupedEntries.computeIfAbsent(c, k -> new ArrayList<>()).add(entry);
179-
consumerStickyKeyHashesMap.computeIfAbsent(c, k -> new HashSet<>()).add(stickyKeyHash);
178+
if (c != null) {
179+
groupedEntries.computeIfAbsent(c, k -> new ArrayList<>()).add(entry);
180+
consumerStickyKeyHashesMap.computeIfAbsent(c, k -> new HashSet<>()).add(stickyKeyHash);
181+
} else {
182+
entry.release();
183+
}
180184
}
181185

182186
AtomicInteger keyNumbers = new AtomicInteger(groupedEntries.size());

0 commit comments

Comments
 (0)