]> source.dussan.org Git - vaadin-framework.git/commitdiff
Do not throw NPE for equals(null) (#8910)
authorArtur Signell <artur@vaadin.com>
Fri, 15 Nov 2013 16:49:39 +0000 (18:49 +0200)
committerVaadin Code Review <review@vaadin.com>
Tue, 21 Jan 2014 06:55:45 +0000 (06:55 +0000)
Change-Id: Ie9a658911c9f2722e518dedbe181c24e5ace07db

server/src/com/vaadin/data/util/filter/Between.java
server/src/com/vaadin/data/util/filter/Compare.java
server/src/com/vaadin/data/util/filter/IsNull.java
server/src/com/vaadin/data/util/filter/Like.java
server/src/com/vaadin/data/util/filter/SimpleStringFilter.java
server/tests/src/com/vaadin/data/util/sqlcontainer/filters/CompareTest.java [new file with mode: 0644]

index 8209f7b0a2db1fc8b9f93d5cd35cdfb8ab170e7e..a76821981a332de326b6bbd637e736560afcceee 100644 (file)
@@ -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;
index f9f19c6602ab736b02579b827769489317b8802f..ac167673bdc263bed9ffaf3e68ddf4791cc39675 100644 (file)
@@ -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())) {
index 5c5bdfc0b1df3bb21a24319c3bd36b2765b81734..6907a016a193426fd0f2be0c1e478587cd4eb971 100644 (file)
@@ -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;
index 4c155641053cb67dc2aae6ce502173eda82f9269..dc2e18363a61a2cc0279338d74166e6216a5c0d8 100644 (file)
@@ -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;
index bc58999445a0666ac025030f879330838b4c0428..a214e698460c1cf9abbe64c8f980a6356c20eb83 100644 (file)
@@ -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 (file)
index 0000000..c8faa71
--- /dev/null
@@ -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));
+    }
+}