This is an automated email from the ASF dual-hosted git repository.
xyz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 9326a08eb17 [fix][broker] Fix NPE after publishing a tombstone to the
service unit channel (#22859)
9326a08eb17 is described below
commit 9326a08eb173b8a7410bcb00c4ab7d3602064b4a
Author: Yunze Xu <[email protected]>
AuthorDate: Fri Jun 7 11:09:09 2024 +0800
[fix][broker] Fix NPE after publishing a tombstone to the service unit
channel (#22859)
---
.../pulsar/broker/loadbalance/extensions/manager/UnloadManager.java | 6 +++---
.../broker/loadbalance/extensions/manager/UnloadManagerTest.java | 6 +-----
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManager.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManager.java
index 6b745345c0a..42fd2fc8473 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManager.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManager.java
@@ -18,6 +18,7 @@
*/
package org.apache.pulsar.broker.loadbalance.extensions.manager;
+import static com.google.common.base.Preconditions.checkArgument;
import static
org.apache.pulsar.broker.loadbalance.extensions.channel.ServiceUnitState.Assigning;
import static
org.apache.pulsar.broker.loadbalance.extensions.channel.ServiceUnitState.Owned;
import static
org.apache.pulsar.broker.loadbalance.extensions.models.UnloadDecision.Label.Failure;
@@ -201,9 +202,8 @@ public class UnloadManager implements StateChangeListener {
}
}
case Init -> {
- if (data.force()) {
- complete(serviceUnit, t);
- }
+ checkArgument(data == null, "Init state must be associated
with null data");
+ complete(serviceUnit, t);
}
case Owned -> complete(serviceUnit, t);
case Releasing ->
LatencyMetric.RELEASE.endMeasurement(serviceUnit);
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManagerTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManagerTest.java
index f7deb072688..be78cfcb595 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManagerTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/manager/UnloadManagerTest.java
@@ -126,11 +126,7 @@ public class UnloadManagerTest {
assertEquals(inFlightUnloadRequestMap.size(), 1);
// Success with Init state.
- manager.handleEvent(bundle,
- new ServiceUnitStateData(ServiceUnitState.Init, null,
srcBroker, false, VERSION_ID_INIT), null);
- assertEquals(inFlightUnloadRequestMap.size(), 1);
- manager.handleEvent(bundle,
- new ServiceUnitStateData(ServiceUnitState.Init, null,
srcBroker, true, VERSION_ID_INIT), null);
+ manager.handleEvent(bundle, null, null);
assertEquals(inFlightUnloadRequestMap.size(), 0);
future.get();
assertEquals(counter.getBreakdownCounters().get(Success).get(Admin).get(), 1);