Skip to content

Commit 427bca7

Browse files
Pawel Krupinskims-tg
authored andcommitted
Fix: ignore null values in HashMap#set
1 parent 13b5cba commit 427bca7

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

core/src/main/java/fj/data/HashMap.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,9 @@ public int size() {
229229
* @param v The value to insert.
230230
*/
231231
public void set(final K k, final V v) {
232-
m.put(new Key<K>(k, e, h), v);
232+
if (v != null) {
233+
m.put(new Key<K>(k, e, h), v);
234+
}
233235
}
234236

235237
/**

core/src/test/fj/data/CheckHashMap.scala

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,16 @@ object CheckHashMap extends Properties("HashMap") {
103103
optionEqual(stringEqual).eq(m.get(key), fromMap.get(key)))
104104
keysAreEqual && valuesAreEqual
105105
})
106-
}
106+
107+
property("No null values") = forAll((m: List[Int]) => {
108+
val map = HashMap.hashMap[Int, Int]()
109+
m.foreach(new Effect[Int] {
110+
def e(a: Int) {
111+
map.set(a, null.asInstanceOf[Int])
112+
}
113+
})
114+
m.forall(new F[Int, java.lang.Boolean]() {
115+
def f(a: Int) = map.contains(a) == false
116+
})
117+
})
118+
}

0 commit comments

Comments
 (0)