summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-11-15 18:49:39 +0200
committerVaadin Code Review <review@vaadin.com>2014-01-21 06:55:45 +0000
commitf0a4ea9c7241885ffd38d5faf38f25a624adac2c (patch)
tree72fb74f47b7c9a46a9f64e98eb44396aa21e2559 /server
parent3f09c10ec3b4982fc725d07f631015b16d8df985 (diff)
downloadvaadin-framework-f0a4ea9c7241885ffd38d5faf38f25a624adac2c.tar.gz
vaadin-framework-f0a4ea9c7241885ffd38d5faf38f25a624adac2c.zip
Do not throw NPE for equals(null) (#8910)
Change-Id: Ie9a658911c9f2722e518dedbe181c24e5ace07db
Diffstat (limited to 'server')
-rw-r--r--server/src/com/vaadin/data/util/filter/Between.java4
-rw-r--r--server/src/com/vaadin/data/util/filter/Compare.java3
-rw-r--r--server/src/com/vaadin/data/util/filter/IsNull.java4
-rw-r--r--server/src/com/vaadin/data/util/filter/Like.java4
-rw-r--r--server/src/com/vaadin/data/util/filter/SimpleStringFilter.java3
-rw-r--r--server/tests/src/com/vaadin/data/util/sqlcontainer/filters/CompareTest.java44
6 files changed, 62 insertions, 0 deletions
diff --git a/server/src/com/vaadin/data/util/filter/Between.java b/server/src/com/vaadin/data/util/filter/Between.java
index 8209f7b0a2..a76821981a 100644
--- a/server/src/com/vaadin/data/util/filter/Between.java
+++ b/server/src/com/vaadin/data/util/filter/Between.java
@@ -67,6 +67,10 @@ public class Between implements Filter {
@Override
public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+
// Only objects of the same class can be equal
if (!getClass().equals(obj.getClass())) {
return false;
diff --git a/server/src/com/vaadin/data/util/filter/Compare.java b/server/src/com/vaadin/data/util/filter/Compare.java
index f9f19c6602..ac167673bd 100644
--- a/server/src/com/vaadin/data/util/filter/Compare.java
+++ b/server/src/com/vaadin/data/util/filter/Compare.java
@@ -307,6 +307,9 @@ public abstract class Compare implements Filter {
@Override
public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
// Only objects of the same class can be equal
if (!getClass().equals(obj.getClass())) {
diff --git a/server/src/com/vaadin/data/util/filter/IsNull.java b/server/src/com/vaadin/data/util/filter/IsNull.java
index 5c5bdfc0b1..6907a016a1 100644
--- a/server/src/com/vaadin/data/util/filter/IsNull.java
+++ b/server/src/com/vaadin/data/util/filter/IsNull.java
@@ -62,6 +62,10 @@ public final class IsNull implements Filter {
@Override
public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+
// Only objects of the same class can be equal
if (!getClass().equals(obj.getClass())) {
return false;
diff --git a/server/src/com/vaadin/data/util/filter/Like.java b/server/src/com/vaadin/data/util/filter/Like.java
index 4c15564105..dc2e18363a 100644
--- a/server/src/com/vaadin/data/util/filter/Like.java
+++ b/server/src/com/vaadin/data/util/filter/Like.java
@@ -84,6 +84,10 @@ public class Like implements Filter {
@Override
public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+
// Only objects of the same class can be equal
if (!getClass().equals(obj.getClass())) {
return false;
diff --git a/server/src/com/vaadin/data/util/filter/SimpleStringFilter.java b/server/src/com/vaadin/data/util/filter/SimpleStringFilter.java
index bc58999445..a214e69846 100644
--- a/server/src/com/vaadin/data/util/filter/SimpleStringFilter.java
+++ b/server/src/com/vaadin/data/util/filter/SimpleStringFilter.java
@@ -82,6 +82,9 @@ public final class SimpleStringFilter implements Filter {
@Override
public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
// Only ones of the objects of the same class can be equal
if (!(obj instanceof SimpleStringFilter)) {
diff --git a/server/tests/src/com/vaadin/data/util/sqlcontainer/filters/CompareTest.java b/server/tests/src/com/vaadin/data/util/sqlcontainer/filters/CompareTest.java
new file mode 100644
index 0000000000..c8faa71e66
--- /dev/null
+++ b/server/tests/src/com/vaadin/data/util/sqlcontainer/filters/CompareTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.data.util.sqlcontainer.filters;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.data.util.filter.Compare;
+
+public class CompareTest {
+
+ @Test
+ public void testEquals() {
+ Compare c1 = new Compare.Equal("prop1", "val1");
+ Compare c2 = new Compare.Equal("prop1", "val1");
+ Assert.assertTrue(c1.equals(c2));
+ }
+
+ @Test
+ public void testDifferentTypeEquals() {
+ Compare c1 = new Compare.Equal("prop1", "val1");
+ Compare c2 = new Compare.Greater("prop1", "val1");
+ Assert.assertFalse(c1.equals(c2));
+ }
+
+ @Test
+ public void testEqualsNull() {
+ Compare c1 = new Compare.Equal("prop1", "val1");
+ Assert.assertFalse(c1.equals(null));
+ }
+}