diff options
| -rw-r--r-- | media/java/android/media/ExifInterface.java | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index c486e68d361a..aa457092ca3f 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -2540,19 +2540,20 @@ public class ExifInterface { if (position < 0) { return -1; } - if (mPosition != position) { - in.seek(position); - mPosition = position; - } - - int bytesRead = in.read(buffer, offset, size); - if (bytesRead < 0) { - mPosition = -1; // need to seek on next read - return -1; - } + try { + if (mPosition != position) { + in.seek(position); + mPosition = position; + } - mPosition += bytesRead; - return bytesRead; + int bytesRead = in.read(buffer, offset, size); + if (bytesRead >= 0) { + mPosition += bytesRead; + return bytesRead; + } + } catch (IOException e) {} + mPosition = -1; // need to seek on next read + return -1; } @Override |