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 );