Details
Description
The code for dealing with an array in the contains class needs to be swapped to prevent a NPE. The solution is trivial and involves swapping the order of the equals test for Arrays to be inline with that used for Iterable.
Currently the code is :
...else if (obj1.getClass().isArray()) {
for (int i = 0; i < Array.getLength(obj1); i++) {
Object value = null;
value = Array.get(obj1, i);
if (value.equals(obj2))
{ // throws NPE if array contains null element //log.debug("obj1 is an array and contains obj2"); return true; } }
}
When it should be :
...else if (obj1.getClass().isArray()) {
for (int i = 0; i < Array.getLength(obj1); i++) {
Object value = null;
value = Array.get(obj1, i);
if (obj2.equals(value))
{ // change the order of the equals test to prevent NPE //log.debug("obj1 is an array and contains obj2"); return true; } }
}