diff options
| author | Makoto Onuki <omakoto@google.com> | 2015-06-12 17:14:57 -0700 |
|---|---|---|
| committer | Makoto Onuki <omakoto@google.com> | 2015-06-12 17:16:23 -0700 |
| commit | 34bdcdb10525336fe3e386f9dd10e8f3d9da416b (patch) | |
| tree | a5ac5ae8e1b610d51168d52628ff54e0f9e22085 | |
| parent | 3e634d93587d06d1dddfbe0b409891b39b92daa6 (diff) | |
| download | frameworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.zip frameworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.tar.gz frameworks_base-34bdcdb10525336fe3e386f9dd10e8f3d9da416b.tar.bz2 | |
Fix ArrayIndexOutOfBoundsException in Transport.query
The bug was that it used getCount() instead of getColumnCount().
Bug 21727804
Change-Id: I3ed6ed3be60c2cb25316340f588f993bac70f52b
| -rw-r--r-- | core/java/android/content/ContentProvider.java | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java index 72e701d..e916b9f 100644 --- a/core/java/android/content/ContentProvider.java +++ b/core/java/android/content/ContentProvider.java @@ -222,16 +222,12 @@ public abstract class ContentProvider implements ComponentCallbacks2 { Cursor cursor = ContentProvider.this.query(uri, projection, selection, selectionArgs, sortOrder, CancellationSignal.fromTransport( cancellationSignal)); - - // Create a projection for all columns. - final int columnCount = cursor.getCount(); - String[] allColumns = new String[columnCount]; - for (int i = 0; i < columnCount; i++) { - allColumns[i] = cursor.getColumnName(i); + if (cursor == null) { + return null; } // Return an empty cursor for all columns. - return new MatrixCursor(allColumns, 0); + return new MatrixCursor(cursor.getColumnNames(), 0); } final String original = setCallingPackage(callingPkg); try { |
