aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/connectbot/service/TerminalManager.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-16 01:45:34 +0000
committerKenny Root <kenny@the-b.org>2009-06-16 01:45:34 +0000
commit20d84c0e94cbed9eeea71f855860c7846072f360 (patch)
treea4049667d5c272deef4d46b18f6ec35747507ad5 /src/org/connectbot/service/TerminalManager.java
parent68df5076fd011d56f8956b97e765c77d9ac793b9 (diff)
downloadconnectbot-20d84c0e94cbed9eeea71f855860c7846072f360.tar.gz
connectbot-20d84c0e94cbed9eeea71f855860c7846072f360.tar.bz2
connectbot-20d84c0e94cbed9eeea71f855860c7846072f360.zip
Avoid concurrent modification of bridges list when TerminalManager service is destroyed while still connected to hosts
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@305 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org/connectbot/service/TerminalManager.java')
-rw-r--r--src/org/connectbot/service/TerminalManager.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/org/connectbot/service/TerminalManager.java b/src/org/connectbot/service/TerminalManager.java
index f7483dd..9b5f6a4 100644
--- a/src/org/connectbot/service/TerminalManager.java
+++ b/src/org/connectbot/service/TerminalManager.java
@@ -162,9 +162,13 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
public void onDestroy() {
Log.i(TAG, "Destroying background service");
- // disconnect and dispose of any existing bridges
- for(TerminalBridge bridge : bridges)
- bridge.dispatchDisconnect(true);
+ if (bridges.size() > 0) {
+ TerminalBridge[] tmpBridges = bridges.toArray(new TerminalBridge[bridges.size()]);
+
+ // disconnect and dispose of any existing bridges
+ for (int i = 0; i < tmpBridges.length; i++)
+ tmpBridges[i].dispatchDisconnect(true);
+ }
if(hostdb != null) {
hostdb.close();