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

Sebb reopened LANG-1713:
------------------------

> ArrayUtils will return null when adding two null arrays, but undocumented
> -------------------------------------------------------------------------
>
>                 Key: LANG-1713
>                 URL: https://issues.apache.org/jira/browse/LANG-1713
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>    Affects Versions: 3.13.0
>            Reporter: John Hendrikx
>            Priority: Minor
>              Labels: Null-Safety, null
>             Fix For: 3.15.0
>
>
>  
> {color:#000000}The code below makes use of `clone`; however `clone` will 
> return `null` when the array is null.{color}
>  
> {color:#000000}This means that doing ArrayUtils.addAll(null, null) can return 
> null.  The documentation however makes it appear that this can never happen 
> ("it is always a new array", and "@return The new boolean[] array."){color}
>  
>  
> {color:#3f5fbf}/**{color}
> {color:#3f5fbf} * {color}{color:#7f7f9f}<p>{color}{color:#3f5fbf}Adds all the 
> elements of the given arrays into a new array.{color}
> {color:#3f5fbf} * {color}{color:#7f7f9f}<p>{color}{color:#3f5fbf}The new 
> array contains all of the element of \{@code array1} followed{color}
> {color:#3f5fbf} * by all of the elements \{@code array2}. When an array is 
> returned, it is always{color}
> {color:#3f5fbf} * a new array.{color}
> {color:#3f5fbf} *{color}
> {color:#3f5fbf} * {color}{color:#7f7f9f}<pre>{color}
> {color:#3f5fbf} * ArrayUtils.addAll(array1, null) = cloned copy of 
> array1{color}
> {color:#3f5fbf} * ArrayUtils.addAll(null, array2) = cloned copy of 
> array2{color}
> {color:#3f5fbf} * ArrayUtils.addAll([], []) = []{color}
> {color:#3f5fbf} * {color}{color:#7f7f9f}</pre>{color}
> {color:#3f5fbf} *{color}
> {color:#3f5fbf} * {color}{color:#7f9fbf}@param{color}{color:#3f5fbf} array1 
> the first array whose elements are added to the new array.{color}
> {color:#3f5fbf} * {color}{color:#7f9fbf}@param{color}{color:#3f5fbf} array2 
> the second array whose elements are added to the new array.{color}
> {color:#3f5fbf} * {color}{color:#7f9fbf}@return{color}{color:#3f5fbf} The new 
> boolean[] array.{color}
> {color:#3f5fbf} * {color}{color:#7f9fbf}@since{color}{color:#3f5fbf} 
> 2.1{color}
> {color:#3f5fbf} */{color}
> {color:#000080}public{color}{color:#000000} 
> {color}{color:#000080}static{color}{color:#000000} 
> {color}{color:#000080}boolean{color}{color:#000000}[] 
> {color}{color:#000000}addAll{color}{color:#000000}({color}{color:#000080}final{color}{color:#000000}
>  {color}{color:#000080}boolean{color}{color:#000000}[] 
> {color}{color:#6a3e3e}array1{color}{color:#000000}, 
> {color}{color:#000080}final{color}{color:#000000} 
> {color}{color:#000080}boolean{color}{color:#000000}... 
> {color}{color:#6a3e3e}array2{color}{color:#000000}) {{color}
> {color:#000080}if{color}{color:#000000} 
> ({color}{color:#6a3e3e}array1{color}{color:#000000} == 
> {color}{color:#000080}null{color}{color:#000000}) {{color}
> {color:#7f0055}return{color}{color:#000000} 
> {color}{color:#000000}clone{color}{color:#000000}({color}{color:#6a3e3e}array2{color}{color:#000000});{color}
> {color:#000000} } {color}{color:#000080}else{color}{color:#000000} 
> {color}{color:#000080}if{color}{color:#000000} 
> ({color}{color:#6a3e3e}array2{color}{color:#000000} == 
> {color}{color:#000080}null{color}{color:#000000}) {{color}
> {color:#7f0055}return{color}{color:#000000} 
> {color}{color:#000000}clone{color}{color:#000000}({color}{color:#6a3e3e}array1{color}{color:#000000});{color}
> {color:#000000} }{color}
> {color:#000080}final{color}{color:#000000} 
> {color}{color:#000080}boolean{color}{color:#000000}[] 
> {color}{color:#6a3e3e}joinedArray{color}{color:#000000} = 
> {color}{color:#000080}new{color}{color:#000000} 
> {color}{color:#000080}boolean{color}{color:#000000}[{color}{color:#6a3e3e}array1{color}{color:#000000}.{color}{color:#0000c0}length{color}{color:#000000}
>  + 
> {color}{color:#6a3e3e}array2{color}{color:#000000}.{color}{color:#0000c0}length{color}{color:#000000}];{color}
> {color:#000000} 
> System.{color}{color:#000000}arraycopy{color}{color:#000000}({color}{color:#6a3e3e}array1{color}{color:#000000},
>  0, {color}{color:#6a3e3e}joinedArray{color}{color:#000000}, 0, 
> {color}{color:#6a3e3e}array1{color}{color:#000000}.{color}{color:#0000c0}length{color}{color:#000000});{color}
> {color:#000000} 
> System.{color}{color:#000000}arraycopy{color}{color:#000000}({color}{color:#6a3e3e}array2{color}{color:#000000},
>  0, {color}{color:#6a3e3e}joinedArray{color}{color:#000000}, 
> {color}{color:#6a3e3e}array1{color}{color:#000000}.{color}{color:#0000c0}length{color}{color:#000000},
>  
> {color}{color:#6a3e3e}array2{color}{color:#000000}.{color}{color:#0000c0}length{color}{color:#000000});{color}
> {color:#7f0055}return{color}{color:#000000} 
> {color}{color:#6a3e3e}joinedArray{color}{color:#000000};{color}
> {color:#000000} }{color}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to