This is an automated email from the ASF dual-hosted git repository.
srdo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new 55f346c STORM-3211: Fix NPE in WindowedBoltExecutor on
getComponentConfiguration
new 9165a78 Merge pull request #3156 from efgpinto/STORM-3211
55f346c is described below
commit 55f346cb093d4f219ecb43b1e6b1a7c2ea5d9a5f
Author: Eduardo Pinto <[email protected]>
AuthorDate: Sun Oct 27 22:25:02 2019 +0000
STORM-3211: Fix NPE in WindowedBoltExecutor on getComponentConfiguration
---
.../src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java | 3 ++-
.../jvm/org/apache/storm/topology/WindowedBoltExecutorTest.java | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git
a/storm-client/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java
b/storm-client/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java
index e6a12d9..4713e95 100644
--- a/storm-client/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java
+++ b/storm-client/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java
@@ -16,6 +16,7 @@ import static
org.apache.storm.topology.base.BaseWindowedBolt.Count;
import static org.apache.storm.topology.base.BaseWindowedBolt.Duration;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -345,7 +346,7 @@ public class WindowedBoltExecutor implements IRichBolt {
@Override
public Map<String, Object> getComponentConfiguration() {
- return bolt.getComponentConfiguration();
+ return bolt.getComponentConfiguration() != null ?
bolt.getComponentConfiguration() : Collections.emptyMap();
}
protected WindowLifecycleListener<Tuple> newWindowLifecycleListener() {
diff --git
a/storm-client/test/jvm/org/apache/storm/topology/WindowedBoltExecutorTest.java
b/storm-client/test/jvm/org/apache/storm/topology/WindowedBoltExecutorTest.java
index 5162cc6..0e38838 100644
---
a/storm-client/test/jvm/org/apache/storm/topology/WindowedBoltExecutorTest.java
+++
b/storm-client/test/jvm/org/apache/storm/topology/WindowedBoltExecutorTest.java
@@ -39,6 +39,7 @@ import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
@@ -214,6 +215,14 @@ public class WindowedBoltExecutorTest {
Mockito.verify(outputCollector).emit("$late", Arrays.asList(tuple),
new Values(tuple));
}
+ @Test
+ public void testEmptyConfigOnWrappedBolt() {
+ IWindowedBolt wrappedBolt = Mockito.mock(IWindowedBolt.class);
+ Mockito.when(wrappedBolt.getComponentConfiguration()).thenReturn(null);
+ executor = new WindowedBoltExecutor(wrappedBolt);
+ assertTrue("Configuration is not empty",
executor.getComponentConfiguration().isEmpty());
+ }
+
private static class TestWindowedBolt extends BaseWindowedBolt {
List<TupleWindow> tupleWindows = new ArrayList<>();