Index: src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java
===================================================================
--- src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java	(revision 17243)
+++ src/main/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStream.java	(revision 17244)
@@ -161,8 +161,8 @@
             int offset = Integer.parseInt(temp.substring(1));// get the offset
             temp = getExtendedName(offset); // convert to the long name
         }
-        currentEntry = new ArArchiveEntry(temp, asLong(length), asInt(userid),
-                                          asInt(groupid), asInt(filemode, 8),
+        currentEntry = new ArArchiveEntry(temp, asLong(length), asInt(userid, true),
+                                          asInt(groupid, true), asInt(filemode, 8),
                                           asLong(lastmodified));
         return currentEntry;
     }
@@ -193,13 +193,25 @@
     }
 
     private int asInt(byte[] input) {
-        return asInt(input, 10);
+        return asInt(input, 10, false);
     }
 
+    private int asInt(byte[] input, boolean treatBlankAsZero) {
+        return asInt(input, 10, treatBlankAsZero);
+    }
+
     private int asInt(byte[] input, int base) {
-        return Integer.parseInt(new String(input).trim(), base);
+        return asInt(input, base, false);
     }
 
+    private int asInt(byte[] input, int base, boolean treatBlankAsZero) {
+        String string = new String(input).trim();
+		if (string.isEmpty() && treatBlankAsZero) {
+		    return 0;
+		}
+        return Integer.parseInt(string, base);
+    }
+
     /*
      * (non-Javadoc)
      * 
