Repository: struts Updated Branches: refs/heads/master c9efe4d0e -> f829e01f6
fixes broken tests due to WW-4544 / #48 Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f829e01f Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f829e01f Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f829e01f Branch: refs/heads/master Commit: f829e01f6e80902895876d372eecb2ebef87bec8 Parents: c9efe4d Author: cnenning <cnenn...@apache.org> Authored: Tue Sep 22 16:17:14 2015 +0200 Committer: cnenning <cnenn...@apache.org> Committed: Tue Sep 22 16:17:14 2015 +0200 ---------------------------------------------------------------------- .../org/apache/struts2/util/ContainUtil.java | 4 +-- .../apache/struts2/util/ContainUtilTest.java | 30 ++++++++++++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/f829e01f/core/src/main/java/org/apache/struts2/util/ContainUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/struts2/util/ContainUtil.java b/core/src/main/java/org/apache/struts2/util/ContainUtil.java index af19603..1cc0bce 100644 --- a/core/src/main/java/org/apache/struts2/util/ContainUtil.java +++ b/core/src/main/java/org/apache/struts2/util/ContainUtil.java @@ -77,7 +77,7 @@ public class ContainUtil { } } if (obj1 instanceof Iterable) { for (Object value : ((Iterable) obj1)) { - if (obj2.equals(value) || obj2.toString().equals(value.toString())) { + if (obj2.equals(value) || (value != null && obj2.toString().equals(value.toString()))) { return true; } } @@ -85,7 +85,7 @@ public class ContainUtil { for (int i = 0; i < Array.getLength(obj1); i++) { Object value = Array.get(obj1, i); - if (obj2.equals(value) || obj2.toString().equals(value.toString())) { + if (obj2.equals(value) || (value != null && obj2.toString().equals(value.toString()))) { return true; } } http://git-wip-us.apache.org/repos/asf/struts/blob/f829e01f/core/src/test/java/org/apache/struts2/util/ContainUtilTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/struts2/util/ContainUtilTest.java b/core/src/test/java/org/apache/struts2/util/ContainUtilTest.java index 7e5d162..1bee599 100644 --- a/core/src/test/java/org/apache/struts2/util/ContainUtilTest.java +++ b/core/src/test/java/org/apache/struts2/util/ContainUtilTest.java @@ -46,6 +46,11 @@ public class ContainUtilTest extends TestCase { assertTrue(ContainUtil.contains(new String[] {"a", null, "b"}, "b")); } + public void testArayContainsNull()throws Exception { + // null gives always false + assertFalse(ContainUtil.contains(new String[] {"a", null, "b"}, null)); + } + public void testSimpleList() throws Exception { List<String> l = new ArrayList<String>(); l.add("one"); @@ -96,13 +101,28 @@ public class ContainUtilTest extends TestCase { } public void testIterableObject() throws Exception { - MyIterableObject i = new MyIterableObject("one", "two"); + MyIterableObject i = new MyIterableObject("one", "two"); + + assertFalse(ContainUtil.contains(i, "thre")); + assertTrue(ContainUtil.contains(i, "one")); + assertTrue(ContainUtil.contains(i, "two")); + } + + public void testNullInIterableObject() throws Exception { + MyIterableObject i = new MyIterableObject("one", null, "two"); assertFalse(ContainUtil.contains(i, "thre")); assertTrue(ContainUtil.contains(i, "one")); assertTrue(ContainUtil.contains(i, "two")); } - + + public void testIterableObjectContainsNull() throws Exception { + MyIterableObject i = new MyIterableObject("one", null, "two"); + + // null gives always false + assertFalse(ContainUtil.contains(i, null)); + } + public static class MyIterableObject implements Iterable<String> { private List<String> values; @@ -126,7 +146,11 @@ public class ContainUtilTest extends TestCase { @Override public int hashCode() { - return this.name.hashCode(); + final int prime = 31; + int result = 1; + result = prime * result + ((age == null) ? 0 : age.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; } @Override