summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Anton Philippov <philippov@google.com> 2017-03-29 16:00:32 +0100
committer Anton Philippov <philippov@google.com> 2017-03-29 16:00:32 +0100
commit68faa93ce964da360bb87499d9ef574e736c95cd (patch)
treeb29c29f7edb895c697503f21824ac486c3010f59
parent92b324282707e7eb4a52e48d9d5af8c75ef6316c (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.java17
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) {