-
Bug
-
Resolution: Not an Issue
-
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