Merge "guard against nulls in LogMaker" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ddf1d16504
@@ -54,7 +54,11 @@ public class LogMaker {
|
||||
|
||||
/* Deserialize from the eventlog */
|
||||
public LogMaker(Object[] items) {
|
||||
deserialize(items);
|
||||
if (items != null) {
|
||||
deserialize(items);
|
||||
} else {
|
||||
setCategory(MetricsEvent.VIEW_UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
/** @param category to replace the existing setting. */
|
||||
@@ -373,13 +377,13 @@ public class LogMaker {
|
||||
*/
|
||||
public void deserialize(Object[] items) {
|
||||
int i = 0;
|
||||
while (i < items.length) {
|
||||
while (items != null && i < items.length) {
|
||||
Object key = items[i++];
|
||||
Object value = i < items.length ? items[i++] : null;
|
||||
if (key instanceof Integer) {
|
||||
entries.put((Integer) key, value);
|
||||
} else {
|
||||
Log.i(TAG, "Invalid key " + key.toString());
|
||||
Log.i(TAG, "Invalid key " + (key == null ? "null" : key.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,4 +263,32 @@ public class LogMakerTest extends TestCase {
|
||||
assertFalse(a.isSubsetOf(b));
|
||||
assertFalse(b.isSubsetOf(a));
|
||||
}
|
||||
|
||||
public void testConstructFromNull() {
|
||||
new LogMaker(null);
|
||||
// no promises, just don't throw
|
||||
}
|
||||
|
||||
public void testConstructFromNullKey() {
|
||||
Object[] items = new Object[2];
|
||||
items[0] = null;
|
||||
items[1] = "foo";
|
||||
new LogMaker(items);
|
||||
// no promises, just don't throw
|
||||
}
|
||||
|
||||
public void testConstructFromNullField() {
|
||||
Object[] items = new Object[2];
|
||||
items[0] = 10;
|
||||
items[1] = null;
|
||||
new LogMaker(items);
|
||||
// no promises, just don't throw
|
||||
}
|
||||
|
||||
public void testConstructFromTruncatedArray() {
|
||||
Object[] items = new Object[1];
|
||||
items[0] = 10;
|
||||
new LogMaker(items);
|
||||
// no promises, just don't throw
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user