summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Nishi <dhnishi@google.com> 2017-04-10 23:12:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-04-10 23:12:21 +0000
commita6bd937c93da97eba85947cb782ea242f7de377c (patch)
treee8c349868d2f7d6c41ad19c07fde0599a2710d1c
parent4a306894145340a4fe08b70b569eaa31641b38e6 (diff)
parentb28c9d6b2d3b52d7c4ac1ad8c18591be99e92772 (diff)
Merge "Fix crash when measuring storage." into oc-dev
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java11
-rw-r--r--services/usage/java/com/android/server/usage/StorageStatsService.java6
2 files changed, 15 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
index 953dda29d7c4..60e10a125d0b 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
@@ -151,8 +151,15 @@ public class StorageMeasurement {
final MeasurementDetails details = new MeasurementDetails();
if (mVolume == null) return details;
- details.totalSize = mStats.getTotalBytes(mVolume.fsUuid);
- details.availSize = mStats.getFreeBytes(mVolume.fsUuid);
+ try {
+ details.totalSize = mStats.getTotalBytes(mVolume.fsUuid);
+ details.availSize = mStats.getFreeBytes(mVolume.fsUuid);
+ } catch (IllegalStateException e) {
+ // The storage volume became null while we were measuring it.
+ Log.w(TAG, e);
+ return details;
+ }
+
final long finishTotal = SystemClock.elapsedRealtime();
Log.d(TAG, "Measured total storage in " + (finishTotal - start) + "ms");
diff --git a/services/usage/java/com/android/server/usage/StorageStatsService.java b/services/usage/java/com/android/server/usage/StorageStatsService.java
index 3f39e4f3cf4b..5ad7f8042c01 100644
--- a/services/usage/java/com/android/server/usage/StorageStatsService.java
+++ b/services/usage/java/com/android/server/usage/StorageStatsService.java
@@ -162,6 +162,9 @@ public class StorageStatsService extends IStorageStatsManager.Stub {
return FileUtils.roundStorageSize(mStorage.getPrimaryStorageSize());
} else {
final VolumeInfo vol = mStorage.findVolumeByUuid(volumeUuid);
+ if (vol == null) {
+ throw new IllegalStateException("Volume was unexpected null");
+ }
return FileUtils.roundStorageSize(vol.disk.size);
}
}
@@ -185,6 +188,9 @@ public class StorageStatsService extends IStorageStatsManager.Stub {
return Environment.getDataDirectory().getUsableSpace() + cacheBytes;
} else {
final VolumeInfo vol = mStorage.findVolumeByUuid(volumeUuid);
+ if (vol == null) {
+ throw new IllegalStateException("Volume was unexpected null");
+ }
return vol.getPath().getUsableSpace() + cacheBytes;
}
}