summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-03-30 13:13:02 -0700
committerRoshan Pius <rpius@google.com>2016-03-30 20:54:11 +0000
commit9c8892ebd2ec5340785f6b787805fdc6088069d7 (patch)
tree4441be59dcadeb84289ea7cc70d98ac6843d81ce
parent02a782764421f0cccc6a9044df31f58b6558f980 (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.java16
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);