diff options
| author | 2016-06-14 04:15:25 +0000 | |
|---|---|---|
| committer | 2016-06-14 04:15:26 +0000 | |
| commit | ac3fe8fffe8321e4292983ca31b472e326f45f1d (patch) | |
| tree | 04974667f2e1b6dd19465bbf8c9cada5671a8e11 | |
| parent | f6250cc7dfffe40dbd20931992151efe8924064f (diff) | |
| parent | ad3b61623ff5ad43be826bc0b05ef09b20984673 (diff) | |
Merge "Make CotentResolver#openInputStream handle errors from reliable pipes." into nyc-dev
| -rw-r--r-- | core/java/android/os/ParcelFileDescriptor.java | 28 |
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; + } } /** |