8213561: ZipFile/MultiThreadedReadTest.java timed out in tier1
Reviewed-by: lancea
This commit is contained in:
parent
985e0c53b3
commit
8d4f4b0491
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -28,14 +28,14 @@
|
|||||||
* @build jdk.test.lib.Platform
|
* @build jdk.test.lib.Platform
|
||||||
* jdk.test.lib.util.FileUtils
|
* jdk.test.lib.util.FileUtils
|
||||||
* @run main MultiThreadedReadTest
|
* @run main MultiThreadedReadTest
|
||||||
* @key randomness
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Random;
|
import java.util.zip.CRC32;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipFile;
|
import java.util.zip.ZipFile;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
@ -44,7 +44,8 @@ import jdk.test.lib.util.FileUtils;
|
|||||||
public class MultiThreadedReadTest extends Thread {
|
public class MultiThreadedReadTest extends Thread {
|
||||||
|
|
||||||
private static final int NUM_THREADS = 10;
|
private static final int NUM_THREADS = 10;
|
||||||
private static final String ZIPFILE_NAME = "large.zip";
|
private static final String ZIPFILE_NAME =
|
||||||
|
System.currentTimeMillis() + "-bug8038491-tmp.large.zip";
|
||||||
private static final String ZIPENTRY_NAME = "random.txt";
|
private static final String ZIPENTRY_NAME = "random.txt";
|
||||||
private static InputStream is = null;
|
private static InputStream is = null;
|
||||||
|
|
||||||
@ -63,23 +64,30 @@ public class MultiThreadedReadTest extends Thread {
|
|||||||
threadArray[i].join();
|
threadArray[i].join();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
long t = System.currentTimeMillis();
|
||||||
FileUtils.deleteFileIfExistsWithRetry(Paths.get(ZIPFILE_NAME));
|
FileUtils.deleteFileIfExistsWithRetry(Paths.get(ZIPFILE_NAME));
|
||||||
|
System.out.println("Deleting zip file took:" +
|
||||||
|
(System.currentTimeMillis() - t) + "ms");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createZipFile() throws Exception {
|
private static void createZipFile() throws Exception {
|
||||||
try (ZipOutputStream zos =
|
CRC32 crc32 = new CRC32();
|
||||||
new ZipOutputStream(new FileOutputStream(ZIPFILE_NAME))) {
|
long t = System.currentTimeMillis();
|
||||||
|
File zipFile = new File(ZIPFILE_NAME);
|
||||||
zos.putNextEntry(new ZipEntry(ZIPENTRY_NAME));
|
try (FileOutputStream fos = new FileOutputStream(zipFile);
|
||||||
StringBuilder sb = new StringBuilder();
|
BufferedOutputStream bos = new BufferedOutputStream(fos);
|
||||||
Random rnd = new Random();
|
ZipOutputStream zos = new ZipOutputStream(bos)) {
|
||||||
for(int i = 0; i < 1000; i++) {
|
ZipEntry e = new ZipEntry(ZIPENTRY_NAME);
|
||||||
// append some random string for ZipEntry
|
e.setMethod(ZipEntry.STORED);
|
||||||
sb.append(Long.toString(rnd.nextLong()));
|
byte[] toWrite = "BLAH".repeat(10_000).getBytes();
|
||||||
}
|
e.setTime(t);
|
||||||
byte[] b = sb.toString().getBytes();
|
e.setSize(toWrite.length);
|
||||||
zos.write(b, 0, b.length);
|
crc32.reset();
|
||||||
|
crc32.update(toWrite);
|
||||||
|
e.setCrc(crc32.getValue());
|
||||||
|
zos.putNextEntry(e);
|
||||||
|
zos.write(toWrite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,6 +96,7 @@ public class MultiThreadedReadTest extends Thread {
|
|||||||
try {
|
try {
|
||||||
while (is.read() != -1) { }
|
while (is.read() != -1) { }
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
System.out.println("read exception:" + e);
|
||||||
// Swallow any Exceptions (which are expected) - we're only interested in the crash
|
// Swallow any Exceptions (which are expected) - we're only interested in the crash
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user