Fix creation of zip file for multi-dex

Bug: 11791202
Change-Id: Ib8f97f11287a59db0ec119a1d55913aa8df3ce33
diff --git a/library/src/android/support/multidex/MultiDexExtractor.java b/library/src/android/support/multidex/MultiDexExtractor.java
index 04c3932..b6988a4 100644
--- a/library/src/android/support/multidex/MultiDexExtractor.java
+++ b/library/src/android/support/multidex/MultiDexExtractor.java
@@ -16,6 +16,10 @@
 
 package android.support.multidex;
 
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.util.Log;
+
 import java.io.Closeable;
 import java.io.File;
 import java.io.FileFilter;
@@ -29,10 +33,6 @@
 import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
 
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.util.Log;
-
 /**
  * Exposes application secondary dex files as files in the application data
  * directory.
@@ -152,8 +152,10 @@
 
                 byte[] buffer = new byte[BUFFER_SIZE];
                 int length = in.read(buffer);
-                while (length > 0) {
-                    out.write(buffer, 0, length);
+                while (length != -1) {
+                    if (length > 0) {
+                        out.write(buffer, 0, length);
+                    }
                     length = in.read(buffer);
                 }
             } finally {