Merge "Handle invalid data during job loading." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ba8c9b4f2d
@@ -459,6 +459,10 @@ public final class JobStore {
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, "Error persisting bundle.", e);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Crashing at this point would result in a boot loop, so live with a general
|
||||
// Exception for system stability's sake.
|
||||
Slog.wtf(TAG, "Unexpected exception", e);
|
||||
} finally {
|
||||
mPersistInfo.countAllJobsSaved = numJobs;
|
||||
mPersistInfo.countSystemServerJobsSaved = numSystemJobs;
|
||||
@@ -807,6 +811,15 @@ public final class JobStore {
|
||||
} catch (NumberFormatException e) {
|
||||
Slog.d(TAG, "Error reading constraints, skipping.");
|
||||
return null;
|
||||
} catch (XmlPullParserException e) {
|
||||
Slog.d(TAG, "Error Parser Exception.", e);
|
||||
return null;
|
||||
} catch (IOException e) {
|
||||
Slog.d(TAG, "Error I/O Exception.", e);
|
||||
return null;
|
||||
} catch (IllegalArgumentException e) {
|
||||
Slog.e(TAG, "Constraints contained invalid data", e);
|
||||
return null;
|
||||
}
|
||||
parser.next(); // Consume </constraints>
|
||||
|
||||
@@ -902,8 +915,14 @@ public final class JobStore {
|
||||
return null;
|
||||
}
|
||||
|
||||
PersistableBundle extras = PersistableBundle.restoreFromXml(parser);
|
||||
jobBuilder.setExtras(extras);
|
||||
final PersistableBundle extras;
|
||||
try {
|
||||
extras = PersistableBundle.restoreFromXml(parser);
|
||||
jobBuilder.setExtras(extras);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Slog.e(TAG, "Persisted extras contained invalid data", e);
|
||||
return null;
|
||||
}
|
||||
parser.nextTag(); // Consume </extras>
|
||||
|
||||
final JobInfo builtJob;
|
||||
@@ -950,7 +969,8 @@ public final class JobStore {
|
||||
return new JobInfo.Builder(jobId, cname);
|
||||
}
|
||||
|
||||
private void buildConstraintsFromXml(JobInfo.Builder jobBuilder, XmlPullParser parser) {
|
||||
private void buildConstraintsFromXml(JobInfo.Builder jobBuilder, XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException {
|
||||
String val;
|
||||
|
||||
final String netCapabilities = parser.getAttributeValue(null, "net-capabilities");
|
||||
|
||||
Reference in New Issue
Block a user