diff -U 3 -H -d -r -N -x .git -x .svn -- commons-compress-1.6-src.orig/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java commons-compress-1.6-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java
+++ commons-compress-1.6-src.orig/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java	2013-10-23 05:59:56.000000000 +0200
--- commons-compress-1.6-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java	2013-11-25 12:32:22.051085223 +0100
@@ -900,7 +900,7 @@
         long value = 0;
         for (int i = 0; i < 8; i++) {
             if ((firstByte & mask) == 0) {
-                return value | ((firstByte & (mask - 1)) << (8 * i));
+                return value | (((long) (firstByte & (mask - 1))) << (8 * i));
             }
             long nextByte = in.readUnsignedByte();
             value |= (nextByte << (8 * i));
