Fix ArrayIndexOutOfBoundsException in Transport.query

The bug was that it used getCount() instead of getColumnCount().

Bug 21727804

Change-Id: I3ed6ed3be60c2cb25316340f588f993bac70f52b
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 @@
                 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 {