Author: tcurdt
Date: Fri Jan  9 01:31:02 2009
New Revision: 732983

URL: http://svn.apache.org/viewvc?rev=732983&view=rev
Log:
applied patch from Christian Grobmeier

always have the full offest
https://issues.apache.org/jira/browse/SANDBOX-274


Modified:
    
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java

Modified: 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java?rev=732983&r1=732982&r2=732983&view=diff
==============================================================================
--- 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
 (original)
+++ 
commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
 Fri Jan  9 01:31:02 2009
@@ -38,7 +38,7 @@
                if (offset == 0) {
                        final byte[] expected = "!<arch>\n".getBytes();         
        
                        final byte[] realized = new byte[expected.length]; 
-                       final int read = input.read(realized);
+                       final int read = read(realized);
                        if (read != expected.length) {
                                throw new IOException("failed to read header");
                        }
@@ -74,7 +74,7 @@
                {
                        final byte[] expected = "`\012".getBytes();             
        
                        final byte[] realized = new byte[expected.length]; 
-                       final int read = input.read(realized);
+                       final int read = read(realized);
                        if (read != expected.length) {
                                throw new IOException("failed to read entry 
header");
                        }
@@ -95,9 +95,17 @@
                offset++;
                return ret;
        }
+       
+       public int read(byte b[]) throws IOException {
+               final int ret = read(b, 0, b.length);
+               offset = offset + b.length;
+               return ret;
+       }
 
        public int read(byte[] b, int off, int len) throws IOException {
-               return this.input.read(b, off, len);
+               final int ret = this.input.read(b, off, len);
+               offset = offset + off;
+               return ret;
        }
        
        public static boolean matches( byte[] signature ) {


Reply via email to