diff options
-rw-r--r-- | core/java/android/os/ParcelFileDescriptor.java | 7 | ||||
-rw-r--r-- | services/java/com/android/server/am/NativeCrashListener.java | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java index 5273c20..2216bd1 100644 --- a/core/java/android/os/ParcelFileDescriptor.java +++ b/core/java/android/os/ParcelFileDescriptor.java @@ -42,6 +42,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InterruptedIOException; import java.net.DatagramSocket; import java.net.Socket; import java.nio.ByteOrder; @@ -698,6 +699,9 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { } catch (ErrnoException e) { // Reporting status is best-effort Log.w(TAG, "Failed to report status: " + e); + } catch (InterruptedIOException e) { + // Reporting status is best-effort + Log.w(TAG, "Failed to report status: " + e); } } finally { @@ -728,6 +732,9 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { Log.d(TAG, "Failed to read status; assuming dead: " + e); return new Status(Status.DEAD); } + } catch (InterruptedIOException e) { + Log.d(TAG, "Failed to read status; assuming dead: " + e); + return new Status(Status.DEAD); } } diff --git a/services/java/com/android/server/am/NativeCrashListener.java b/services/java/com/android/server/am/NativeCrashListener.java index 2c7f1f1..1dba23c 100644 --- a/services/java/com/android/server/am/NativeCrashListener.java +++ b/services/java/com/android/server/am/NativeCrashListener.java @@ -29,6 +29,7 @@ import static libcore.io.OsConstants.*; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileDescriptor; +import java.io.InterruptedIOException; import java.net.InetSocketAddress; import java.net.InetUnixAddress; @@ -178,7 +179,7 @@ final class NativeCrashListener extends Thread { } static int readExactly(FileDescriptor fd, byte[] buffer, int offset, int numBytes) - throws ErrnoException { + throws ErrnoException, InterruptedIOException { int totalRead = 0; while (numBytes > 0) { int n = Libcore.os.read(fd, buffer, offset + totalRead, numBytes); |