- 
    Bug 
- 
    Resolution: Not an Issue
- 
     P4 P4
- 
    8, 11, 17, 18, 19, 20
- 
        generic
- 
        generic
                    ADDITIONAL SYSTEM INFORMATION :
windows 11, Java 8
A DESCRIPTION OF THE PROBLEM :
ZipOutputStream must call close() before ByteArrayOutputStream calls toByteArray() to obtain the whole byte[]
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Main {
@Test
public void testZipNoFile() throws IOException {
ByteArrayOutputStream fos = new ByteArrayOutputStream();
ZipOutputStream zipOut = new ZipOutputStream(fos);
ZipEntry zipEntry = new ZipEntry("text1.txt");
zipOut.putNextEntry(zipEntry);
zipOut.write("你好世界".getBytes("utf-8"));
//zipOut.close();
byte[] zipByte = fos.toByteArray();
fos.close();
zipOut.close();
FileOutputStream fouts = new FileOutputStream("/c:/90087.zip");
fouts.write(zipByte);
fouts.close();
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
zip file created correctly
ACTUAL -
can not open zip file
CUSTOMER SUBMITTED WORKAROUND :
FREQUENCY : always
windows 11, Java 8
A DESCRIPTION OF THE PROBLEM :
ZipOutputStream must call close() before ByteArrayOutputStream calls toByteArray() to obtain the whole byte[]
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Main {
@Test
public void testZipNoFile() throws IOException {
ByteArrayOutputStream fos = new ByteArrayOutputStream();
ZipOutputStream zipOut = new ZipOutputStream(fos);
ZipEntry zipEntry = new ZipEntry("text1.txt");
zipOut.putNextEntry(zipEntry);
zipOut.write("你好世界".getBytes("utf-8"));
//zipOut.close();
byte[] zipByte = fos.toByteArray();
fos.close();
zipOut.close();
FileOutputStream fouts = new FileOutputStream("/c:/90087.zip");
fouts.write(zipByte);
fouts.close();
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
zip file created correctly
ACTUAL -
can not open zip file
CUSTOMER SUBMITTED WORKAROUND :
FREQUENCY : always
