[
https://issues.apache.org/jira/browse/BROOKLYN-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14294104#comment-14294104
]
ASF GitHub Bot commented on BROOKLYN-129:
-----------------------------------------
Github user aledsage commented on the pull request:
https://github.com/apache/incubator-brooklyn/pull/471#issuecomment-71718907
@michaeldye I agree that: if any of the Strings in `items` is null, it
should throw an exception that includes the rest of the path in its message.
I'd prefer a `NullPointerException` rather than an
`IllegalArgumentException`. To quote Joshua Bloch's Effective Java item 60: "If
a caller passes null in some parameter for which null values are prohibited,
convention dictates that NullPointerException be thrown rather than
IllegalArgumentException."
You can call the NPE constructor that takes a String, so can still pass in
the message.
If you can update the PR accordingly (and ideally add a test case to
`brooklyn.util.net.UrlsTest`), then that would be fantastic.
> brooklyn.util.net.Urls.mergePaths(String... items) doesn't filter null values
> -----------------------------------------------------------------------------
>
> Key: BROOKLYN-129
> URL: https://issues.apache.org/jira/browse/BROOKLYN-129
> Project: Brooklyn
> Issue Type: Bug
> Affects Versions: 0.7.0-M2
> Reporter: michael dye
> Fix For: 0.7.0-M2
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> brooklyn.util.net.Urls.mergePaths(String... items) iterates over given array
> of paths and merges them, including null values. In some cases, this can lead
> to later evaluation of paths like "null/foo.tar.gz". Logging from error
> encountered while deploying from a Chef recipe:
> {noformat}
> 2015-01-20 20:55:31,652 WARN Error invoking start at
> BasicApplicationImpl{id=wjm4Zaws}: Error invoking start at
> BasicApplicationImpl{id=wjm4Zaws}: Error invoking start at
> ChefEntityImpl{id=AfLQVhJO}: SSH task ended with exit code 2 when 0 was
> required, in Task[ssh: extracting archive:hEupCHeQ]: extracting archive
> ...
> cd /root/brooklyn-managed-processes/installs/chef/tmp-brooklyn_doc_gen-ZWet
> tar xvfz null/brooklyn_doc_gen.tar.gz
> rm null/brooklyn_doc_gen.tar.gz
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)