]> granicus.if.org Git - icu/commitdiff
ICU-13517 Updated TimeZoneAdapter#equals implementation to return false if the given...
authorYoshito Umaoka <y.umaoka@gmail.com>
Sun, 20 May 2018 23:53:41 +0000 (23:53 +0000)
committerYoshito Umaoka <y.umaoka@gmail.com>
Sun, 20 May 2018 23:53:41 +0000 (23:53 +0000)
X-SVN-Rev: 41419

icu4j/main/classes/core/src/com/ibm/icu/impl/TimeZoneAdapter.java
icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java

index 7e0c18f3be41facf1e8ac2d7e57fe171ddf1b536..5f024170da466c894dfd1dcdb5d42979b3428ab5 100644 (file)
@@ -143,10 +143,14 @@ public class TimeZoneAdapter extends java.util.TimeZone {
      */
     @Override
     public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
         if (obj instanceof TimeZoneAdapter) {
-            obj = ((TimeZoneAdapter) obj).zone;
+            TimeZone anotherZone = ((TimeZoneAdapter) obj).zone;
+            return zone.equals(anotherZone);
         }
-        return zone.equals(obj);
+        return false;
     }
 
     /**
index 7bc747e361fd61ed56eb1a539c44db63b6635fa5..8dc1572721eec6996d9c687c5da2273c2a51fb9d 100644 (file)
@@ -27,6 +27,7 @@ import org.junit.runners.JUnit4;
 
 import com.ibm.icu.dev.test.TestFmwk;
 import com.ibm.icu.impl.ICUData;
+import com.ibm.icu.impl.TimeZoneAdapter;
 import com.ibm.icu.text.SimpleDateFormat;
 import com.ibm.icu.util.BasicTimeZone;
 import com.ibm.icu.util.Calendar;
@@ -2308,6 +2309,19 @@ public class TimeZoneTest extends TestFmwk
                     data[2], id);
         }
     }
+
+    @Test
+    public void TestTimeZoneAdapterEquals() {
+        String idChicago = "America/Chicago";
+        TimeZone icuChicago = TimeZone.getTimeZone(idChicago);
+        TimeZone icuChicago2 = TimeZone.getTimeZone(idChicago);
+        java.util.TimeZone icuChicagoWrapped = TimeZoneAdapter.wrap(icuChicago);
+        java.util.TimeZone icuChicagoWrapped2 = TimeZoneAdapter.wrap(icuChicago2);
+
+        assertFalse("Compare TimeZone and TimeZoneAdapter", icuChicago.equals(icuChicagoWrapped));
+        assertFalse("Compare TimeZoneAdapter with TimeZone", icuChicagoWrapped.equals(icuChicago));
+        assertTrue("Compare two TimeZoneAdapters", icuChicagoWrapped.equals(icuChicagoWrapped2));
+    }
 }
 
 //eof