Trident topology is iBatchSpout -> Filter -> partitionPersist(BaseStateUpdater) 
-> newValuesStream -> etc, when it gets to the BaseStateUpdater it throws an 
NPE when I access the value in the tuple

exception I’m getting in bolt:

java.lang.RuntimeException: java.lang.NullPointerException at 
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)
 at 
backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
 at 
backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80) 
at 
backtype.storm.daemon.executor$fn__4722$fn__4734$fn__4781.invoke(executor.clj:748)
 at backtype.storm.util$async_loop$fn__458.invoke(util.clj:463) at 
clojure.lang.AFn.run(AFn.java:24) at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException at 
storm.trident.tuple.TridentTupleView.getValueByPointer(TridentTupleView.java:357)
 at 
storm.trident.tuple.TridentTupleView.getValueByField(TridentTupleView.java:308) 
at esp.state.RedisStsUpdater.updateState(RedisStsUpdater.java:20) at 
esp.state.RedisStsUpdater.updateState(RedisStsUpdater.java:14) at 
storm.trident.planner.processor.PartitionPersistProcessor.finishBatch(PartitionPersistProcessor.java:98)
 at storm.trident.planner.SubtopologyBolt.finishBatch(SubtopologyBolt.java:152) 
at 
storm.trident.topology.TridentBoltExecutor.finishBatch(TridentBoltExecutor.java:252)
 at 
storm.trident.topology.TridentBoltExecutor.checkFinish(TridentBoltExecutor.java:285)
 at 
storm.trident.topology.TridentBoltExecutor.execute(TridentBoltExecutor.java:359)
 at 
backtype.storm.daemon.executor$fn__4722$tuple_action_fn__4724.invoke(executor.clj:633)
 at 
backtype.storm.daemon.executor$mk_task_receiver$fn__4645.invoke(executor.clj:401)
 at 
backtype.storm.disruptor$clojure_handler$reify__1446.onEvent(disruptor.clj:58) 
at 
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
 ... 6 more

any help would really be appreciated!




Reply via email to