diff options
| author | 2017-04-10 23:12:17 +0000 | |
|---|---|---|
| committer | 2017-04-10 23:12:21 +0000 | |
| commit | a6bd937c93da97eba85947cb782ea242f7de377c (patch) | |
| tree | e8c349868d2f7d6c41ad19c07fde0599a2710d1c | |
| parent | 4a306894145340a4fe08b70b569eaa31641b38e6 (diff) | |
| parent | b28c9d6b2d3b52d7c4ac1ad8c18591be99e92772 (diff) | |
Merge "Fix crash when measuring storage." into oc-dev
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java | 11 | ||||
| -rw-r--r-- | services/usage/java/com/android/server/usage/StorageStatsService.java | 6 |
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; } } |