Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcede434 authored by Craig Mautner's avatar Craig Mautner Committed by Android Git Automerger
Browse files

am b984a072: Merge "Add more error checking to xml restore" into lmp-preview-dev

* commit 'b984a072a7addc2404ea9ae2f67ccfa85e686167':
  Add more error checking to xml restore
parents 9d8ef24c 5d004583
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);
+9 −7
Original line number Diff line number Diff line
@@ -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);