salesforce / storm-dynamic-spout

A framework for building spouts for Apache Storm and a Kafka based spout for dynamically skipping messages to be processed later.
BSD 3-Clause "New" or "Revised" License
40 stars 13 forks source link

[SIDELINE] Better checking for bad filter chain steps #21

Closed stanlemon closed 7 years ago

stanlemon commented 7 years ago

java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011) at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) at com.salesforce.storm.spout.sideline.filter.FilterChain.addStep(FilterChain.java:49) at com.salesforce.storm.spout.sideline.handler.SidelineSpoutHandler.onSpoutOpen(SidelineSpoutHandler.java:186) at com.salesforce.storm.spout.dynamic.DynamicSpout.open(DynamicSpout.java:186) at org.apache.storm.daemon.executor$fn_4962$fn4977.invoke(executor.clj:602) at org.apache.storm.util$async_loop$fn_557.invoke(util.clj:482) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:745)

stanlemon commented 7 years ago

Looks like the sideline request might have deserialized wrong, which is odd. So the problem isn't in the filter chain (thought I'm going add some preconditions to these methods to get more clear messages), but probably further up stream. It might take a couple of rounds to get this one fully sorted.

Crim commented 7 years ago

Is it because the class path changed between versions?

stanlemon commented 7 years ago

Ah I bet that’s it! Good catch. Anyhow, I’m going to add some better handling so that’s clear all the way down.

stanlemon commented 7 years ago

Resolved in #37