summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/ExifInterface.java25
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