diff options
author | Roshan Pius <rpius@google.com> | 2016-03-30 13:13:02 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2016-03-30 20:54:11 +0000 |
commit | 9c8892ebd2ec5340785f6b787805fdc6088069d7 (patch) | |
tree | 4441be59dcadeb84289ea7cc70d98ac6843d81ce | |
parent | 02a782764421f0cccc6a9044df31f58b6558f980 (diff) |
Fix null pointer exception in reportActivityInfo
Fix null pointer exception when tx_timer_per_level is null.
BUG: 27924555
Change-Id: I83240a63e1163ab7888f3a0777408f3cb271bd86
-rw-r--r-- | service/java/com/android/server/wifi/WifiServiceImpl.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index db8510fc2..67a4b6ced 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -724,10 +724,16 @@ public class WifiServiceImpl extends IWifiManager.Stub { / 1000.0; final long rxIdleTime = stats.on_time - stats.tx_time - stats.rx_time; - final long[] txTimePerLevel = new long[stats.tx_time_per_level.length]; - for (int i = 0; i < txTimePerLevel.length; i++) { - txTimePerLevel[i] = stats.tx_time_per_level[i]; - // TODO(b/27227497): Need to read the power consumed per level from config + final long[] txTimePerLevel; + if (stats.tx_time_per_level != null) { + txTimePerLevel = new long[stats.tx_time_per_level.length]; + for (int i = 0; i < txTimePerLevel.length; i++) { + txTimePerLevel[i] = stats.tx_time_per_level[i]; + // TODO(b/27227497): Need to read the power consumed per level from config + } + } else { + // This will happen if the HAL get link layer API returned null. + txTimePerLevel = new long[0]; } final long energyUsed = (long)((stats.tx_time * txCurrent + stats.rx_time * rxCurrent + @@ -741,7 +747,7 @@ public class WifiServiceImpl extends IWifiManager.Stub { sb.append(" voltage=" + voltage); sb.append(" on_time=" + stats.on_time); sb.append(" tx_time=" + stats.tx_time); - sb.append(" tx_time_per_level=" + Arrays.toString(stats.tx_time_per_level)); + sb.append(" tx_time_per_level=" + Arrays.toString(txTimePerLevel)); sb.append(" rx_time=" + stats.rx_time); sb.append(" rxIdleTime=" + rxIdleTime); sb.append(" energy=" + energyUsed); |