Merge "Add more error checking to xml restore" into lmp-preview-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5d0045835b
@@ -1154,13 +1154,15 @@ final class ActivityRecord {
|
||||
}
|
||||
|
||||
if (intent == null) {
|
||||
Slog.e(TAG, "restoreActivity error intent=" + intent);
|
||||
return null;
|
||||
throw new XmlPullParserException("restoreActivity error intent=" + intent);
|
||||
}
|
||||
|
||||
final ActivityManagerService service = stackSupervisor.mService;
|
||||
final ActivityInfo aInfo = stackSupervisor.resolveActivity(intent, resolvedType, 0, null,
|
||||
null, userId);
|
||||
if (aInfo == null) {
|
||||
throw new XmlPullParserException("restoreActivity resolver error.");
|
||||
}
|
||||
final ActivityRecord r = new ActivityRecord(service, /*caller*/null, launchedFromUid,
|
||||
launchedFromPackage, intent, resolvedType, aInfo, service.getConfiguration(),
|
||||
null, null, 0, componentSpecified, stackSupervisor, null, null);
|
||||
|
||||
@@ -155,6 +155,7 @@ public class TaskPersister {
|
||||
File taskFile = recentFiles[taskNdx];
|
||||
if (DEBUG) Slog.d(TAG, "restoreTasksLocked: taskFile=" + taskFile.getName());
|
||||
BufferedReader reader = null;
|
||||
boolean deleteFile = false;
|
||||
try {
|
||||
reader = new BufferedReader(new FileReader(taskFile));
|
||||
final XmlPullParser in = Xml.newPullParser();
|
||||
@@ -183,10 +184,9 @@ public class TaskPersister {
|
||||
}
|
||||
XmlUtils.skipCurrentTag(in);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Slog.e(TAG, "Unable to parse " + taskFile + ". Error " + e);
|
||||
} catch (XmlPullParserException e) {
|
||||
Slog.e(TAG, "Unable to parse " + taskFile + ". Error " + e);
|
||||
} catch (Exception e) {
|
||||
Slog.wtf(TAG, "Unable to parse " + taskFile + ". Error " + e);
|
||||
deleteFile = true;
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
@@ -194,6 +194,9 @@ public class TaskPersister {
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
if (!DEBUG && deleteFile) {
|
||||
taskFile.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,7 +223,7 @@ public class TaskPersister {
|
||||
return new ArrayList<TaskRecord>(Arrays.asList(tasksArray));
|
||||
}
|
||||
|
||||
private void removeObsoleteFiles(ArraySet<Integer> persistentTaskIds, File[] files) {
|
||||
private static void removeObsoleteFiles(ArraySet<Integer> persistentTaskIds, File[] files) {
|
||||
for (int fileNdx = 0; fileNdx < files.length; ++fileNdx) {
|
||||
File file = files[fileNdx];
|
||||
String filename = file.getName();
|
||||
@@ -285,8 +288,7 @@ public class TaskPersister {
|
||||
synchronized(mService) {
|
||||
final ArrayList<TaskRecord> tasks = mService.mRecentTasks;
|
||||
persistentTaskIds.clear();
|
||||
int taskNdx;
|
||||
for (taskNdx = tasks.size() - 1; taskNdx >= 0; --taskNdx) {
|
||||
for (int taskNdx = tasks.size() - 1; taskNdx >= 0; --taskNdx) {
|
||||
task = tasks.get(taskNdx);
|
||||
if (DEBUG) Slog.d(TAG, "LazyTaskWriter: task=" + task + " persistable=" +
|
||||
task.isPersistable + " needsPersisting=" + task.needsPersisting);
|
||||
|
||||
Reference in New Issue
Block a user