[
https://issues.apache.org/jira/browse/STORM-1594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15350360#comment-15350360
]
ASF GitHub Bot commented on STORM-1594:
---------------------------------------
GitHub user lujinhong opened a pull request:
https://github.com/apache/storm/pull/1522
[STORM-1594] org.apache.storm.tuple.Fields can throw NPE if given invalid
field in selector
fix STORM-1594.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/lujinhong/storm storm-1594
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/storm/pull/1522.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1522
----
commit bdf4ba5cb10a6af1db20f105f6cda2064b669548
Author: lujinhong <[email protected]>
Date: 2016-06-27T02:33:28Z
fix STORM-1594
----
> org.apache.storm.tuple.Fields can throw NPE if given invalid field in selector
> ------------------------------------------------------------------------------
>
> Key: STORM-1594
> URL: https://issues.apache.org/jira/browse/STORM-1594
> Project: Apache Storm
> Issue Type: Bug
> Components: storm-core
> Reporter: Alessandro Bellina
> Priority: Minor
> Labels: npe
>
> In class org.apache.storm.tuple.Fields, the select method gets the index of
> the field to select from the first argument (selector) by using .get. It
> doesn't set this result to an Integer and check for null (Map.get returns
> null if the key is not found).
> When tuple.get happens, the parameter for tuple.get is an unboxed integer.
> The null cannot be unboxed to integer, causing an NPE. There is another
> method in Fields called fieldIndex which will throw an
> IllegalArgumentException in the case that the field in the selector isn't in
> the _index.
> {code}
> public List<Object> select(Fields selector, List<Object> tuple) {
> List<Object> ret = new ArrayList<>(selector.size());
> for(String s: selector) {
> ret.add(tuple.get(_index.get(s)));
> }
> return ret;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)