Fix null pointer exception in DocumentLoader.
BUG=27489909 Change-Id: I1ebc9953f6db6639241d0c46257d110c5b0eb5b0
This commit is contained in:
@@ -276,7 +276,7 @@ class DocumentLoader implements AutoCloseable {
|
||||
static final int STATE_ERROR = 2;
|
||||
|
||||
final MtpDatabase mDatabase;
|
||||
int[] mOperationsSupported;
|
||||
final int[] mOperationsSupported;
|
||||
final Identifier mIdentifier;
|
||||
final int[] mObjectHandles;
|
||||
Date mLastNotified;
|
||||
@@ -285,6 +285,8 @@ class DocumentLoader implements AutoCloseable {
|
||||
|
||||
LoaderTask(MtpDatabase database, int[] operationsSupported, Identifier identifier,
|
||||
int[] objectHandles) {
|
||||
Preconditions.checkNotNull(operationsSupported);
|
||||
Preconditions.checkNotNull(objectHandles);
|
||||
mDatabase = database;
|
||||
mOperationsSupported = operationsSupported;
|
||||
mIdentifier = identifier;
|
||||
|
||||
@@ -143,7 +143,12 @@ class MtpManager {
|
||||
throws IOException {
|
||||
final MtpDevice device = getDevice(deviceId);
|
||||
synchronized (device) {
|
||||
return device.getObjectHandles(storageId, 0 /* all format */, parentObjectHandle);
|
||||
final int[] handles =
|
||||
device.getObjectHandles(storageId, 0 /* all format */, parentObjectHandle);
|
||||
if (handles == null) {
|
||||
throw new IOException("Failed to fetch object handles.");
|
||||
}
|
||||
return handles;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -596,7 +596,7 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
|
||||
0,
|
||||
"Device A",
|
||||
"device key",
|
||||
true /* unopened */,
|
||||
true /* opened */,
|
||||
new MtpRoot[] {
|
||||
new MtpRoot(
|
||||
0 /* deviceId */,
|
||||
@@ -606,7 +606,7 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
|
||||
2048 /* total space */,
|
||||
"" /* no volume identifier */)
|
||||
},
|
||||
null,
|
||||
OPERATIONS_SUPPORTED,
|
||||
null));
|
||||
|
||||
final String[] names = strings("Directory A", "Directory B", "Directory C");
|
||||
|
||||
@@ -106,7 +106,7 @@ public class TestMtpManager extends MtpManager {
|
||||
mDevices.put(
|
||||
deviceId,
|
||||
new MtpDeviceRecord(device.deviceId, device.name, device.deviceKey, false,
|
||||
device.roots, null, null));
|
||||
device.roots, device.operationsSupported, device.eventsSupported));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user