diff --git a/library/src/androidTest/java/com/qiniu/android/EtagTest.java b/library/src/androidTest/java/com/qiniu/android/EtagTest.java index 84b819dce..0dc4fa8d2 100644 --- a/library/src/androidTest/java/com/qiniu/android/EtagTest.java +++ b/library/src/androidTest/java/com/qiniu/android/EtagTest.java @@ -3,6 +3,7 @@ import android.test.AndroidTestCase; import com.qiniu.android.common.Constants; +import com.qiniu.android.storage.Configuration; import com.qiniu.android.utils.Etag; import junit.framework.Assert; @@ -40,6 +41,13 @@ public void testFile() throws IOException { f = TempFile.createFile(9 * 1024); Assert.assertEquals("ljgVjMtyMsOgIySv79U8Qz4TrUO4", Etag.file(f)); TempFile.remove(f); + } + public void testLongToInt() { + long len = 2323435710l; + int b = (int) ((len + Configuration.BLOCK_SIZE - 1) / Configuration.BLOCK_SIZE); + Assert.assertEquals("不应该溢出", 554, b); + int a = (int) (len + Configuration.BLOCK_SIZE - 1) / Configuration.BLOCK_SIZE; + Assert.assertNotSame("预计会溢出", 554, a); } } diff --git a/library/src/main/java/com/qiniu/android/utils/Etag.java b/library/src/main/java/com/qiniu/android/utils/Etag.java index d796fee76..dfe9eb26a 100644 --- a/library/src/main/java/com/qiniu/android/utils/Etag.java +++ b/library/src/main/java/com/qiniu/android/utils/Etag.java @@ -81,7 +81,7 @@ public static String stream(InputStream in, long len) throws IOException { return "Fto5o-5ea0sNMlW_75VgGJCv2AcJ"; } byte[] buffer = new byte[64 * 1024]; - byte[][] blocks = new byte[(int) (len + Configuration.BLOCK_SIZE - 1) / Configuration.BLOCK_SIZE][]; + byte[][] blocks = new byte[(int) ((len + Configuration.BLOCK_SIZE - 1) / Configuration.BLOCK_SIZE)][]; for (int i = 0; i < blocks.length; i++) { long left = len - (long) Configuration.BLOCK_SIZE * i; long read = left > Configuration.BLOCK_SIZE ? Configuration.BLOCK_SIZE : left;