Steve Blackmon created STREAMS-223:
--------------------------------------
Summary: streams-monitoring exception when streamConfig not set
Key: STREAMS-223
URL: https://issues.apache.org/jira/browse/STREAMS-223
Project: Streams
Issue Type: Bug
Reporter: Steve Blackmon
LocalStreamBuilder supports a default execution even when streamConfig is
empty/null
StreamBuilder builder = new LocalStreamBuilder(100);
streams-monitoring throws an exception and does not run when no config is
supplied.
00:31:21.762 [main] ERROR o.a.s.m.tasks.BroadcastMonitorThread - Exception
while trying to set default broadcast thread wait time: {}
java.lang.NullPointerException: null
at
org.apache.streams.monitoring.tasks.BroadcastMonitorThread.setWaitTime(BroadcastMonitorThread.java:144)
[classes/:na]
at
org.apache.streams.monitoring.tasks.BroadcastMonitorThread.<init>(BroadcastMonitorThread.java:58)
[classes/:na]
at
org.apache.streams.local.builders.LocalStreamBuilder.<init>(LocalStreamBuilder.java:114)
[classes/:na]
at
org.apache.streams.local.builders.LocalStreamBuilder.<init>(LocalStreamBuilder.java:89)
[classes/:na]
at
org.apache.streams.twitter.example.TwitterUserstreamConsole.main(TwitterUserstreamConsole.java:49)
[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[na:1.8.0_20]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[na:1.8.0_20]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.8.0_20]
at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
[idea_rt.jar:na]
00:31:21.773 [main] DEBUG o.a.s.l.builders.LocalStreamBuilder - Attaching
shutdown handler
The workaround is to supply a config like this:
Map<String, Object> streamConfig = Maps.newHashMap();
streamConfig.put(LocalStreamBuilder.TIMEOUT_KEY, 20 * 60 * 1000);
streamConfig.put("monitoring_broadcast_interval_ms", -1);
StreamBuilder builder = new LocalStreamBuilder(100, streamConfig);
But that should not be necessary.
Establish documented defaults for this capability, ensure no exceptions occur
in the default state, and do not require explicit action by the implementation
to use the default.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)