OSDN Git Service

Fix Bmgr's logic around restore completion
authorChristopher Tate <ctate@android.com>
Fri, 7 Aug 2009 18:35:35 +0000 (11:35 -0700)
committerChristopher Tate <ctate@android.com>
Fri, 7 Aug 2009 18:35:35 +0000 (11:35 -0700)
The caller needs to wait for the restore observer to be informed that the
restore has finished processing before it can safely shut down the restore
session.

cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java

index ee3ec1a..027c367 100644 (file)
@@ -327,21 +327,24 @@ public final class Bmgr {
                     printRestoreSets(sets);
                 }
             }
+
+            // now wait for it to be done
+            synchronized (observer) {
+                while (!observer.done) {
+                    try {
+                        observer.wait();
+                    } catch (InterruptedException ex) {
+                    }
+                }
+            }
+
+            // once the restore has finished, close down the session and we're done
             mRestore.endRestoreSession();
         } catch (RemoteException e) {
             System.err.println(e.toString());
             System.err.println(BMGR_NOT_RUNNING_ERR);
         }
 
-        // now wait for it to be done
-        synchronized (observer) {
-            while (!observer.done) {
-                try {
-                    observer.wait();
-                } catch (InterruptedException ex) {
-                }
-            }
-        }
         System.out.println("done");
     }