Prevent redundant calls to removeHandler() from throwing exceptions.

Fixes issue 7552.

Change-Id: I7f284ef9c52f264dcdf282ef4b752c049422cfc9
Review-Link: https://gwt-review.googlesource.com/#/c/1640/

Review by: goktug@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11455 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/web/bindery/event/shared/SimpleEventBus.java b/user/src/com/google/web/bindery/event/shared/SimpleEventBus.java
index 7e33728..de48103 100644
--- a/user/src/com/google/web/bindery/event/shared/SimpleEventBus.java
+++ b/user/src/com/google/web/bindery/event/shared/SimpleEventBus.java
@@ -214,7 +214,7 @@
     List<H> l = getHandlerList(type, source);
 
     boolean removed = l.remove(handler);
-    assert removed : "redundant remove call";
+
     if (removed && l.isEmpty()) {
       prune(type, source);
     }
diff --git a/user/test/com/google/web/bindery/event/shared/SimpleEventBusTest.java b/user/test/com/google/web/bindery/event/shared/SimpleEventBusTest.java
index 29e6541..3c3d870 100644
--- a/user/test/com/google/web/bindery/event/shared/SimpleEventBusTest.java
+++ b/user/test/com/google/web/bindery/event/shared/SimpleEventBusTest.java
@@ -294,19 +294,8 @@
     final SimpleEventBus eventBus = new SimpleEventBus();
     HandlerRegistration reg = FooEvent.register(eventBus, fooHandler1);
     reg.removeHandler();
+    reg.removeHandler(); // should not throw
 
-    boolean assertsOn = getClass().desiredAssertionStatus();
-
-    if (assertsOn) {
-      try {
-        reg.removeHandler();
-        fail("Should have thrown on remove");
-      } catch (AssertionError e) { /* pass */
-      }
-    } else {
-      reg.removeHandler();
-      // Succeed on no assert failure
-    }
   }
 
   public void testNoSource() {