diff options
| author | 2017-03-29 16:00:32 +0100 | |
|---|---|---|
| committer | 2017-03-29 16:00:32 +0100 | |
| commit | 68faa93ce964da360bb87499d9ef574e736c95cd (patch) | |
| tree | b29c29f7edb895c697503f21824ac486c3010f59 | |
| parent | 92b324282707e7eb4a52e48d9d5af8c75ef6316c (diff) | |
Fix BackupManagerMonitor wrapping in RestoreSession
Do not wrap a null monitor, pass a null wrapper instead.
BackupManagerService expects null monitor wrapper, so this
will prevent extra work for BMS and potential NPEs.
Bug: 36470662
Test: manual
Change-Id: Ia45375049101f757542960bc7f1fd640fc9c3fb7
| -rw-r--r-- | core/java/android/app/backup/RestoreSession.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/core/java/android/app/backup/RestoreSession.java b/core/java/android/app/backup/RestoreSession.java index 94fac17c99a3..69d964da4949 100644 --- a/core/java/android/app/backup/RestoreSession.java +++ b/core/java/android/app/backup/RestoreSession.java @@ -54,7 +54,9 @@ public class RestoreSession { public int getAvailableRestoreSets(RestoreObserver observer, BackupManagerMonitor monitor) { int err = -1; RestoreObserverWrapper obsWrapper = new RestoreObserverWrapper(mContext, observer); - BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor); + BackupManagerMonitorWrapper monitorWrapper = monitor == null + ? null + : new BackupManagerMonitorWrapper(monitor); try { err = mBinder.getAvailableRestoreSets(obsWrapper, monitorWrapper); } catch (RemoteException e) { @@ -99,7 +101,9 @@ public class RestoreSession { return -1; } mObserver = new RestoreObserverWrapper(mContext, observer); - BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor); + BackupManagerMonitorWrapper monitorWrapper = monitor == null + ? null + : new BackupManagerMonitorWrapper(monitor); try { err = mBinder.restoreAll(token, mObserver, monitorWrapper); } catch (RemoteException e) { @@ -154,7 +158,9 @@ public class RestoreSession { return -1; } mObserver = new RestoreObserverWrapper(mContext, observer); - BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor); + BackupManagerMonitorWrapper monitorWrapper = monitor == null + ? null + : new BackupManagerMonitorWrapper(monitor); try { err = mBinder.restoreSome(token, mObserver, monitorWrapper, packages); } catch (RemoteException e) { @@ -212,8 +218,9 @@ public class RestoreSession { return -1; } mObserver = new RestoreObserverWrapper(mContext, observer); - BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor); - + BackupManagerMonitorWrapper monitorWrapper = monitor == null + ? null + : new BackupManagerMonitorWrapper(monitor); try { err = mBinder.restorePackage(packageName, mObserver, monitorWrapper); } catch (RemoteException e) { |