OSDN Git Service

Fixing concurrent modification exception when iterating through new apps list. (Bug...
authorWinson Chung <winsonc@google.com>
Mon, 25 Jun 2012 21:21:37 +0000 (14:21 -0700)
committerWinson Chung <winsonc@google.com>
Mon, 25 Jun 2012 21:23:29 +0000 (14:23 -0700)
Change-Id: Idf4fae51c65e0e53520740dd0b2050eeac00b251

src/com/android/launcher2/Workspace.java

index 0192630..2d2340a 100644 (file)
@@ -3684,12 +3684,13 @@ public class Workspace extends SmoothPagedView
                     // Remove all queued items that match the same package
                     if (newApps != null) {
                         synchronized (newApps) {
-                            for (String intentStr : newApps) {
+                            Iterator<String> iter = newApps.iterator();
+                            while (iter.hasNext()) {
                                 try {
-                                    Intent intent = Intent.parseUri(intentStr, 0);
+                                    Intent intent = Intent.parseUri(iter.next(), 0);
                                     String pn = ItemInfo.getPackageName(intent);
                                     if (packageNames.contains(pn)) {
-                                        newApps.remove(intentStr);
+                                        iter.remove();
                                     }
                                 } catch (URISyntaxException e) {}
                             }