Skip to content

Commit 2c4eceb

Browse files
committed
Finally fixed the zip unpacking and folder cleanup issue properly (I think)
1 parent 2ea9e7b commit 2c4eceb

File tree

2 files changed

+12
-22
lines changed

2 files changed

+12
-22
lines changed

modules/core-test-module/src/main/java/testutil/SecureTestDataHelper.java

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static void runTestWithSecureTestData(PasswordsConsumer consumer)
2929

3030
private static Properties accessSecureTestData()
3131
throws IOException {
32+
final File file = new File(RESOURCES + "/secure-testdata/secure-testdata");
3233
final InputStream inputStream = ConfigLoader.class.getClassLoader().getResourceAsStream("secure-testdata-passwords.properties");
3334
final Properties passwords = new Properties();
3435
passwords.load(checkArgumentNotEmpty(inputStream, "InputStream was null"));
@@ -37,31 +38,21 @@ private static Properties accessSecureTestData()
3738
.as("secure-testdata-passwords.properties")
3839
.isNotEmpty();
3940

40-
final String secureDataPassword = passwords.getProperty("secure-testdata-zip");
41-
new ZipFile(RESOURCES + "/secure-testdata/secure-testdata.zip", secureDataPassword.toCharArray())
42-
.extractAll(RESOURCES + "/secure-testdata/secure-testdata");
43-
new ZipFile(RESOURCES + "/secure-testdata/secure-testdata/file-hider.zip", secureDataPassword.toCharArray())
44-
.extractAll(RESOURCES + "/secure-testdata/secure-testdata");
41+
synchronized (SecureTestDataHelper.class) {
42+
if (!file.exists()) {
43+
final String secureDataPassword = passwords.getProperty("secure-testdata-zip");
44+
new ZipFile(RESOURCES + "/secure-testdata/secure-testdata.zip", secureDataPassword.toCharArray())
45+
.extractAll(RESOURCES + "/secure-testdata/secure-testdata");
46+
new ZipFile(RESOURCES + "/secure-testdata/secure-testdata/file-hider.zip", secureDataPassword.toCharArray())
47+
.extractAll(RESOURCES + "/secure-testdata/secure-testdata");
48+
}
49+
}
4550

4651
return passwords;
4752
}
4853

49-
public static void cleanupSecureTestData() {
50-
final File file = new File(RESOURCES + "/secure-testdata/secure-testdata");
51-
52-
int tries = 0;
53-
while (file.exists() && tries++ <= 10) {
54-
try {
55-
FileUtils.deleteDirectory(file);
56-
} catch (IOException e) {
57-
try {
58-
Thread.sleep(100);
59-
} catch (InterruptedException interruptedException) {
60-
Thread.currentThread().interrupt();
61-
return;
62-
}
63-
}
64-
}
54+
private static void cleanupSecureTestData() throws IOException {
55+
FileUtils.forceDeleteOnExit(new File(RESOURCES + "/secure-testdata/secure-testdata"));
6556
}
6657

6758
public interface PasswordsConsumer {

modules/simple-java-mail/src/test/java/org/simplejavamail/internal/smimesupport/ReadSmimeSelfSignedTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ public void testNPE_InSmimeUtilFixed()
213213
throws Exception {
214214
// for some reason running this test from CLI fails without this line
215215
// I think a previous cleanup failed or couldn't be executed successfully
216-
SecureTestDataHelper.cleanupSecureTestData();
217216
SecureTestDataHelper.runTestWithSecureTestData(passwords -> {
218217
String fileNameMsg = RESOURCES + "/secure-testdata/secure-testdata/npe-SmimeUtilFixed-test-email/NPE_SmimeUtilFixed Test Mail.msg";
219218
FileInputStream fileInputStream = new FileInputStream(fileNameMsg);

0 commit comments

Comments
 (0)