commit | ec0ec97bba4ead81f08ce10240d0d10363dd8b00 | [log] [tgz] |
---|---|---|
author | Tim Buschtöns <tbuschto@eclipsesource.com> | Tue Aug 20 15:19:32 2013 +0200 |
committer | Tim Buschtöns <tbuschto@eclipsesource.com> | Tue Aug 20 15:19:32 2013 +0200 |
tree | 3ee7e7ae9941f0cd974c0e1b4d0a3738741cc374 | |
parent | 0c662e0e8070bc0453321be2355632f7305fea3b [diff] |
Prevent error when disposing AutoSuggest twice
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java index 31de64d..f1dd12c 100644 --- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java +++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java
@@ -127,10 +127,12 @@ } public void dispose() { - isDisposed = true; - dropDown.dispose(); - remoteObject.destroy(); - removeTextClientListeners(); + if( !isDisposed ) { + isDisposed = true; + dropDown.dispose(); + remoteObject.destroy(); + removeTextClientListeners(); + } } public boolean isDisposed() {
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java b/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java index 7f5602f..e6103c0 100644 --- a/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java +++ b/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java
@@ -194,6 +194,16 @@ } @Test + public void testDispose_callingTwicedestroysRemoteObjectOnce() { + AutoSuggest autoSuggest = new AutoSuggest( text ); + + autoSuggest.dispose(); + autoSuggest.dispose(); + + verify( remoteObject, times( 1 ) ).destroy(); + } + + @Test public void testDispose_removesClientListenersFromText() { AutoSuggest autoSuggest = new AutoSuggest( text );