[ 
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)

Reply via email to