From 00b8bb6e791ed72d07563084ece3d55eeebf0556 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 27 Feb 2012 17:42:34 -0800 Subject: [PATCH] Suppress StrictMode when reading /proc/ files. Bug: 6077051 Change-Id: If4f23e947d8b91f9f124baa0460600a6b9353732 --- .../com/android/internal/net/NetworkStatsFactory.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/java/com/android/internal/net/NetworkStatsFactory.java b/core/java/com/android/internal/net/NetworkStatsFactory.java index 41993c4128..4e3d9650f8 100644 --- a/core/java/com/android/internal/net/NetworkStatsFactory.java +++ b/core/java/com/android/internal/net/NetworkStatsFactory.java @@ -22,6 +22,7 @@ import static android.net.NetworkStats.UID_ALL; import static com.android.server.NetworkManagementSocketTagger.kernelToTag; import android.net.NetworkStats; +import android.os.StrictMode; import android.os.SystemClock; import android.util.Slog; @@ -106,6 +107,8 @@ public class NetworkStatsFactory { } private NetworkStats readNetworkStatsSummarySingleFile() { + final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads(); + final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 6); final NetworkStats.Entry entry = new NetworkStats.Entry(); @@ -156,6 +159,7 @@ public class NetworkStatsFactory { throw new IllegalStateException("problem parsing stats: " + e); } finally { IoUtils.closeQuietly(reader); + StrictMode.setThreadPolicy(savedPolicy); } return stats; } @@ -165,6 +169,8 @@ public class NetworkStatsFactory { */ @Deprecated private NetworkStats readNetworkStatsSummaryMultipleFiles() { + final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads(); + final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 6); final NetworkStats.Entry entry = new NetworkStats.Entry(); @@ -241,6 +247,7 @@ public class NetworkStatsFactory { throw new IllegalStateException("problem parsing stats: " + e); } finally { IoUtils.closeQuietly(reader); + StrictMode.setThreadPolicy(savedPolicy); } return stats; @@ -257,6 +264,8 @@ public class NetworkStatsFactory { * @throws IllegalStateException when problem parsing stats. */ public NetworkStats readNetworkStatsDetail(int limitUid) throws IllegalStateException { + final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads(); + final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 24); final NetworkStats.Entry entry = new NetworkStats.Entry(); @@ -300,6 +309,7 @@ public class NetworkStatsFactory { throw new IllegalStateException("problem parsing idx " + idx, e); } finally { IoUtils.closeQuietly(reader); + StrictMode.setThreadPolicy(savedPolicy); } return stats;