summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tomasz Mikolajewski <mtomasz@google.com> 2016-06-14 04:15:25 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-06-14 04:15:26 +0000
commitac3fe8fffe8321e4292983ca31b472e326f45f1d (patch)
tree04974667f2e1b6dd19465bbf8c9cada5671a8e11
parentf6250cc7dfffe40dbd20931992151efe8924064f (diff)
parentad3b61623ff5ad43be826bc0b05ef09b20984673 (diff)
Merge "Make CotentResolver#openInputStream handle errors from reliable pipes." into nyc-dev
-rw-r--r--core/java/android/os/ParcelFileDescriptor.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java
index d5491d3a808a..7702c174ba2f 100644
--- a/core/java/android/os/ParcelFileDescriptor.java
+++ b/core/java/android/os/ParcelFileDescriptor.java
@@ -864,6 +864,34 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
super.close();
}
}
+
+ @Override
+ public int read() throws IOException {
+ final int result = super.read();
+ if (result == -1 && mPfd.canDetectErrors()) {
+ // Check for errors only on EOF, to minimize overhead.
+ mPfd.checkError();
+ }
+ return result;
+ }
+
+ @Override
+ public int read(byte[] b) throws IOException {
+ final int result = super.read(b);
+ if (result == -1 && mPfd.canDetectErrors()) {
+ mPfd.checkError();
+ }
+ return result;
+ }
+
+ @Override
+ public int read(byte[] b, int off, int len) throws IOException {
+ final int result = super.read(b, off, len);
+ if (result == -1 && mPfd.canDetectErrors()) {
+ mPfd.checkError();
+ }
+ return result;
+ }
}
/**