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

Reply via email to