You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2012/03/09 19:07:14 UTC

svn commit: r1298950 - /commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java

Author: bodewig
Date: Fri Mar  9 18:07:13 2012
New Revision: 1298950

URL: http://svn.apache.org/viewvc?rev=1298950&view=rev
Log:
simplify addition of PAX headers

Modified:
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java?rev=1298950&r1=1298949&r2=1298950&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java Fri Mar  9 18:07:13 2012
@@ -449,30 +449,32 @@ public class TarArchiveOutputStream exte
 
     private void addPaxHeadersForBigNumbers(Map<String, String> paxHeaders,
                                             TarArchiveEntry entry) {
-        if (entry.getSize() > TarConstants.MAXSIZE) {
-            paxHeaders.put("size", String.valueOf(entry.getSize()));
-        }
-        if (entry.getGroupId() > TarConstants.MAXID) {
-            paxHeaders.put("gid", String.valueOf(entry.getGroupId()));
-        }
-        final long mtime =  entry.getModTime().getTime() / 1000;
-        if (mtime < 0 || mtime > TarConstants.MAXSIZE) {
-            paxHeaders.put("mtime", String.valueOf(mtime));
-        }
-        if (entry.getUserId() > TarConstants.MAXID) {
-            paxHeaders.put("uid", String.valueOf(entry.getUserId()));
-        }
-        if (entry.getDevMajor() > TarConstants.MAXID) {
-            paxHeaders.put("SCHILY.devmajor",
-                           String.valueOf(entry.getDevMajor()));
-        }
-        if (entry.getDevMinor() > TarConstants.MAXID) {
-            paxHeaders.put("SCHILY.devminor",
-                           String.valueOf(entry.getDevMinor()));
-        }
+        addPaxHeaderForBigNumber(paxHeaders, "size", entry.getSize(),
+                                 TarConstants.MAXSIZE);
+        addPaxHeaderForBigNumber(paxHeaders, "gid", entry.getGroupId(),
+                                 TarConstants.MAXID);
+        addPaxHeaderForBigNumber(paxHeaders, "mtime",
+                                 entry.getModTime().getTime() / 1000,
+                                 TarConstants.MAXSIZE);
+        addPaxHeaderForBigNumber(paxHeaders, "uid", entry.getUserId(),
+                                 TarConstants.MAXID);
+        // star extensions by J\u00f6rg Schillig
+        addPaxHeaderForBigNumber(paxHeaders, "SCHILY.devmajor",
+                                 entry.getDevMajor(), TarConstants.MAXID);
+        addPaxHeaderForBigNumber(paxHeaders, "SCHILY.devminor",
+                                 entry.getDevMinor(), TarConstants.MAXID);
+        // there is no PAX header for file mode
         failForBigNumber("mode", entry.getMode(), TarConstants.MAXID);
     }
 
+    private void addPaxHeaderForBigNumber(Map<String, String> paxHeaders,
+                                          String header, long value,
+                                          long maxValue) {
+        if (value < 0 || value > maxValue) {
+            paxHeaders.put(header, String.valueOf(value));
+        }
+    }
+
     private void failForBigNumbers(TarArchiveEntry entry) {
         failForBigNumber("entry size", entry.getSize(), TarConstants.MAXSIZE);
         failForBigNumber("group id", entry.getGroupId(), TarConstants.MAXID);