Fix some issues with skip() functions.



git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1292655 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java b/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java
index 4475900..1a3b630 100644
--- a/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java
+++ b/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java
@@ -180,12 +180,7 @@
         }
 
         InputStream is = getInputStream();
-        for (long skipped = 0; skipped < blockStart; ) {
-            long ret = is.skip(blockStart - skipped);
-            if (ret >= 0) {
-                skipped += ret;
-            }
-        }
+        skipBytes(is, blockStart);
 
         byte bytes[] = new byte[blockLength];
         int total = 0;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
index 0f5d86b..700a4d9 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
@@ -136,24 +136,17 @@
         InputStream is = null;
         try
         {
-            is = byteSource.getInputStream();
-            if (offset > 0) {
-                for (long skipped = 0; skipped < offset; ) {
-                    long ret = is.skip(offset - skipped);
-                    if (ret >= 0) {
-                        skipped += ret;
-                    }
-                }
-            }
-
-            List<TiffField> fields = new ArrayList<TiffField>();
-
             if (offset >= byteSource.getLength())
             {
                 // Debug.debug("skipping invalid directory!");
                 return true;
             }
 
+            is = byteSource.getInputStream();
+            skipBytes(is, offset);
+
+            List<TiffField> fields = new ArrayList<TiffField>();
+
             int entryCount;
             try
             {