Loading services/core/java/com/android/server/am/ActivityRecord.java +2 −1 Original line number Diff line number Diff line Loading @@ -1147,7 +1147,8 @@ final class ActivityRecord { final ActivityInfo aInfo = stackSupervisor.resolveActivity(intent, resolvedType, 0, null, null, userId); if (aInfo == null) { throw new XmlPullParserException("restoreActivity resolver error."); throw new XmlPullParserException("restoreActivity resolver error. Intent=" + intent + " resolvedType=" + resolvedType); } final ActivityRecord r = new ActivityRecord(service, /*caller*/null, launchedFromUid, launchedFromPackage, intent, resolvedType, aInfo, service.getConfiguration(), Loading services/core/java/com/android/server/am/TaskPersister.java +27 −3 Original line number Diff line number Diff line Loading @@ -177,6 +177,23 @@ public class TaskPersister { return false; } private String fileToString(File file) { final String newline = System.lineSeparator(); try { BufferedReader reader = new BufferedReader(new FileReader(file)); StringBuffer sb = new StringBuffer((int) file.length() * 2); String line; while ((line = reader.readLine()) != null) { sb.append(line + newline); } reader.close(); return sb.toString(); } catch (IOException ioe) { Slog.e(TAG, "Couldn't read file " + file.getName()); return null; } } ArrayList<TaskRecord> restoreTasksLocked() { final ArrayList<TaskRecord> tasks = new ArrayList<TaskRecord>(); ArraySet<Integer> recoveredTaskIds = new ArraySet<Integer>(); Loading Loading @@ -206,13 +223,18 @@ public class TaskPersister { if (TAG_TASK.equals(name)) { final TaskRecord task = TaskRecord.restoreFromXml(in, mStackSupervisor); if (DEBUG) Slog.d(TAG, "restoreTasksLocked: restored task=" + task); if (true || DEBUG) Slog.d(TAG, "restoreTasksLocked: restored task=" + task); if (task != null) { task.isPersistable = true; task.needsPersisting = true; tasks.add(task); final int taskId = task.taskId; recoveredTaskIds.add(taskId); mStackSupervisor.setNextTaskId(taskId); } else { Slog.e(TAG, "Unable to restore taskFile=" + taskFile + ": " + fileToString(taskFile)); } } else { Slog.wtf(TAG, "restoreTasksLocked Unknown xml event=" + event + Loading @@ -223,6 +245,7 @@ public class TaskPersister { } } catch (Exception e) { Slog.wtf(TAG, "Unable to parse " + taskFile + ". Error " + e); Slog.e(TAG, "Failing file: " + fileToString(taskFile)); deleteFile = true; } finally { if (reader != null) { Loading @@ -232,7 +255,7 @@ public class TaskPersister { } } if (!DEBUG && deleteFile) { if (DEBUG) Slog.d(TAG, "Deleting file=" + taskFile.getName()); if (true || DEBUG) Slog.d(TAG, "Deleting file=" + taskFile.getName()); taskFile.delete(); } } Loading Loading @@ -276,7 +299,8 @@ public class TaskPersister { continue; } if (!persistentTaskIds.contains(taskId)) { if (DEBUG) Slog.d(TAG, "removeObsoleteFile: deleting file=" + file.getName()); if (true || DEBUG) Slog.d(TAG, "removeObsoleteFile: deleting file=" + file.getName()); file.delete(); } } Loading Loading
services/core/java/com/android/server/am/ActivityRecord.java +2 −1 Original line number Diff line number Diff line Loading @@ -1147,7 +1147,8 @@ final class ActivityRecord { final ActivityInfo aInfo = stackSupervisor.resolveActivity(intent, resolvedType, 0, null, null, userId); if (aInfo == null) { throw new XmlPullParserException("restoreActivity resolver error."); throw new XmlPullParserException("restoreActivity resolver error. Intent=" + intent + " resolvedType=" + resolvedType); } final ActivityRecord r = new ActivityRecord(service, /*caller*/null, launchedFromUid, launchedFromPackage, intent, resolvedType, aInfo, service.getConfiguration(), Loading
services/core/java/com/android/server/am/TaskPersister.java +27 −3 Original line number Diff line number Diff line Loading @@ -177,6 +177,23 @@ public class TaskPersister { return false; } private String fileToString(File file) { final String newline = System.lineSeparator(); try { BufferedReader reader = new BufferedReader(new FileReader(file)); StringBuffer sb = new StringBuffer((int) file.length() * 2); String line; while ((line = reader.readLine()) != null) { sb.append(line + newline); } reader.close(); return sb.toString(); } catch (IOException ioe) { Slog.e(TAG, "Couldn't read file " + file.getName()); return null; } } ArrayList<TaskRecord> restoreTasksLocked() { final ArrayList<TaskRecord> tasks = new ArrayList<TaskRecord>(); ArraySet<Integer> recoveredTaskIds = new ArraySet<Integer>(); Loading Loading @@ -206,13 +223,18 @@ public class TaskPersister { if (TAG_TASK.equals(name)) { final TaskRecord task = TaskRecord.restoreFromXml(in, mStackSupervisor); if (DEBUG) Slog.d(TAG, "restoreTasksLocked: restored task=" + task); if (true || DEBUG) Slog.d(TAG, "restoreTasksLocked: restored task=" + task); if (task != null) { task.isPersistable = true; task.needsPersisting = true; tasks.add(task); final int taskId = task.taskId; recoveredTaskIds.add(taskId); mStackSupervisor.setNextTaskId(taskId); } else { Slog.e(TAG, "Unable to restore taskFile=" + taskFile + ": " + fileToString(taskFile)); } } else { Slog.wtf(TAG, "restoreTasksLocked Unknown xml event=" + event + Loading @@ -223,6 +245,7 @@ public class TaskPersister { } } catch (Exception e) { Slog.wtf(TAG, "Unable to parse " + taskFile + ". Error " + e); Slog.e(TAG, "Failing file: " + fileToString(taskFile)); deleteFile = true; } finally { if (reader != null) { Loading @@ -232,7 +255,7 @@ public class TaskPersister { } } if (!DEBUG && deleteFile) { if (DEBUG) Slog.d(TAG, "Deleting file=" + taskFile.getName()); if (true || DEBUG) Slog.d(TAG, "Deleting file=" + taskFile.getName()); taskFile.delete(); } } Loading Loading @@ -276,7 +299,8 @@ public class TaskPersister { continue; } if (!persistentTaskIds.contains(taskId)) { if (DEBUG) Slog.d(TAG, "removeObsoleteFile: deleting file=" + file.getName()); if (true || DEBUG) Slog.d(TAG, "removeObsoleteFile: deleting file=" + file.getName()); file.delete(); } } Loading