[ 
https://issues.apache.org/jira/browse/STORM-2331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antti Järvinen updated STORM-2331:
----------------------------------
    Description: 
org.apache.storm.task.ShellBolt.handleEmit method expects to find list of tuple 
ids from the message to anchor the emit to.

The storm.js function __emit can only handle case of specifying exactly one 
anchor. If none is specified the message will contain anchor list [undefined] 
and if multiple anchors are specified the message will contain nested anchor 
list [["anchor1", "anchor2"]].

In the case of not anchoring to any the ShellBolt will throw runtime exception 
when ConcurrentHashMap tries to call .hashCode() on null. In the case of 
multiple anchors the ShellBolt will probably throw some cast error because the 
anchor array cannot be cast to List<String> (did not test).

The fix should be made in storm.js

  was:
org.apache.storm.task.ShellBolt.handleEmit method expects to find list of tuple 
ids from the message to anchor the emit to.

The storm.js function __emit can only handle case of specifying exactly one 
anchor. If none is specified the message will contain anchor list [undefined] 
and if multiple anchors are specified the message will contain nested anchor 
list [["anchor1", "anchor2"]].

In the case of not anchoring to any the ShellBolt will throw runtime exception 
when ConcurrentHashMap tries to call .hashCode() on null. In the case of 
multiple anchors the ShellBolt will throw an error of "Anchored onto anchorId 
after ack/fail".

The fix should be made in storm.js


> Anchoring emit in JavaScript only works with exactly one anchor
> ---------------------------------------------------------------
>
>                 Key: STORM-2331
>                 URL: https://issues.apache.org/jira/browse/STORM-2331
>             Project: Apache Storm
>          Issue Type: Bug
>          Components: storm-multilang
>            Reporter: Antti Järvinen
>
> org.apache.storm.task.ShellBolt.handleEmit method expects to find list of 
> tuple ids from the message to anchor the emit to.
> The storm.js function __emit can only handle case of specifying exactly one 
> anchor. If none is specified the message will contain anchor list [undefined] 
> and if multiple anchors are specified the message will contain nested anchor 
> list [["anchor1", "anchor2"]].
> In the case of not anchoring to any the ShellBolt will throw runtime 
> exception when ConcurrentHashMap tries to call .hashCode() on null. In the 
> case of multiple anchors the ShellBolt will probably throw some cast error 
> because the anchor array cannot be cast to List<String> (did not test).
> The fix should be made in storm.js



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to