Merge "Explicitly close file stream when initializing quotas."

This commit is contained in:
Daniel Nishi
2019-04-02 19:33:59 +00:00
committed by Android (Google) Code Review

View File

@@ -66,7 +66,6 @@ import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* CacheQuotaStrategy is a strategy for determining cache quotas using usage stats and foreground
@@ -296,26 +295,24 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener {
* @return the number of bytes that were free on the device when the quotas were last calced.
*/
public long setupQuotasFromFile() throws IOException {
FileInputStream stream;
try {
stream = mPreviousValuesFile.openRead();
Pair<Long, List<CacheQuotaHint>> cachedValues = null;
try (FileInputStream stream = mPreviousValuesFile.openRead()) {
try {
cachedValues = readFromXml(stream);
} catch (XmlPullParserException e) {
throw new IllegalStateException(e.getMessage());
}
} catch (FileNotFoundException e) {
// The file may not exist yet -- this isn't truly exceptional.
return -1;
}
Pair<Long, List<CacheQuotaHint>> cachedValues = null;
try {
cachedValues = readFromXml(stream);
} catch (XmlPullParserException e) {
throw new IllegalStateException(e.getMessage());
}
if (cachedValues == null) {
Slog.e(TAG, "An error occurred while parsing the cache quota file.");
return -1;
}
pushProcessedQuotas(cachedValues.second);
return cachedValues.first;
}