commit | 9b99aa713575376164a31824383fb8cc21ba82e2 | [log] [tgz] |
---|---|---|
author | kurka.daniel@gmail.com <kurka.daniel@gmail.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7> | Tue Jan 15 01:05:00 2013 +0000 |
committer | kurka.daniel@gmail.com <kurka.daniel@gmail.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7> | Tue Jan 15 01:05:00 2013 +0000 |
tree | 7d0c10c57afa747fc9f01fe4983d5b4b1ca95e7e | |
parent | c587fc95992a655753c4a52e2fa79366a89875b6 [diff] |
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() {