Merge changes from topic "stats-migration"

* changes:
  Add null check when list directory
  [MS82.2] Add a rewriteSingle method that takes two timestamps
This commit is contained in:
Natasha Lee
2022-06-01 03:03:02 +00:00
committed by Gerrit Code Review
2 changed files with 21 additions and 2 deletions

View File

@@ -52,6 +52,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.net.ProtocolException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
@@ -161,9 +162,12 @@ public class NetworkStatsDataMigrationUtils {
@NonNull
private static ArrayList<File> getPlatformFileListForPrefix(@NonNull @Prefix String prefix) {
final ArrayList<File> list = new ArrayList<>();
final File platformFiles = new File(getPlatformBaseDir(), "netstats");
final File platformFiles = getPlatformBaseDir();
if (platformFiles.exists()) {
for (String name : platformFiles.list()) {
final String[] files = platformFiles.list();
if (files == null) return list;
Arrays.sort(files);
for (String name : files) {
// Skip when prefix doesn't match.
if (!name.startsWith(prefix + ".")) continue;

View File

@@ -16,6 +16,7 @@
package com.android.internal.util;
import android.annotation.NonNull;
import android.os.FileUtils;
import android.util.Log;
@@ -281,6 +282,20 @@ public class FileRotator {
}
}
/**
* Process a single file atomically, with the given start and end timestamps.
* If a file with these exact start and end timestamps does not exist, a new
* empty file will be written.
*/
public void rewriteSingle(@NonNull Rewriter rewriter, long startTimeMillis, long endTimeMillis)
throws IOException {
final FileInfo info = new FileInfo(mPrefix);
info.startMillis = startTimeMillis;
info.endMillis = endTimeMillis;
rewriteSingle(rewriter, info.build());
}
/**
* Read any rotated data that overlap the requested time range.
*/