summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Etienne Ruffieux <eruffieux@google.com> 2022-01-29 10:29:29 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-01-29 10:29:29 +0000
commit4a4797cbc1f19b6518424f4040beda26f2968e2e (patch)
tree712eebdc55ecc85d3cff35f18718c7bb41b51550
parentfa43f240c499df366e1b6123cd682d084f6e1a8d (diff)
parent4c1c4ee37ed5b51beed13fcd933065145d17b48d (diff)
Merge "Making CursorWindowAllocationException public"
-rw-r--r--core/api/current.txt4
-rw-r--r--core/java/android/database/CursorWindow.java5
-rw-r--r--core/java/android/database/CursorWindowAllocationException.java6
3 files changed, 12 insertions, 3 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index fe938a9a99ec..f026116bb8f3 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -12953,6 +12953,10 @@ package android.database {
field @NonNull public static final android.os.Parcelable.Creator<android.database.CursorWindow> CREATOR;
}
+ public class CursorWindowAllocationException extends java.lang.RuntimeException {
+ ctor public CursorWindowAllocationException(@NonNull String);
+ }
+
public class CursorWrapper implements android.database.Cursor {
ctor public CursorWrapper(android.database.Cursor);
method public void close();
diff --git a/core/java/android/database/CursorWindow.java b/core/java/android/database/CursorWindow.java
index f13c79587a28..52bba1484f1a 100644
--- a/core/java/android/database/CursorWindow.java
+++ b/core/java/android/database/CursorWindow.java
@@ -131,11 +131,16 @@ public class CursorWindow extends SQLiteClosable implements Parcelable {
*
* @param name The name of the cursor window, or null if none.
* @param windowSizeBytes Size of cursor window in bytes.
+ * @throws IllegalArgumentException if {@code windowSizeBytes} is less than 0
+ * @throws AssertionError if created window pointer is 0
* <p><strong>Note:</strong> Memory is dynamically allocated as data rows are added to the
* window. Depending on the amount of data stored, the actual amount of memory allocated can be
* lower than specified size, but cannot exceed it.
*/
public CursorWindow(String name, @BytesLong long windowSizeBytes) {
+ if (windowSizeBytes < 0) {
+ throw new IllegalArgumentException("Window size cannot be less than 0");
+ }
mStartPos = 0;
mName = name != null && name.length() != 0 ? name : "<unnamed>";
mWindowPtr = nativeCreate(mName, (int) windowSizeBytes);
diff --git a/core/java/android/database/CursorWindowAllocationException.java b/core/java/android/database/CursorWindowAllocationException.java
index 2e3227dc6788..5315c8b591ab 100644
--- a/core/java/android/database/CursorWindowAllocationException.java
+++ b/core/java/android/database/CursorWindowAllocationException.java
@@ -16,14 +16,14 @@
package android.database;
+import android.annotation.NonNull;
+
/**
* This exception is thrown when a CursorWindow couldn't be allocated,
* most probably due to memory not being available.
- *
- * @hide
*/
public class CursorWindowAllocationException extends RuntimeException {
- public CursorWindowAllocationException(String description) {
+ public CursorWindowAllocationException(@NonNull String description) {
super(description);
}
}