You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/01/07 16:11:31 UTC
[jackrabbit-filevault] branch feature/JCRVLT-580-parameterize-maven-version updated: releng: retry deleting directories on Windows
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/JCRVLT-580-parameterize-maven-version
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git
The following commit(s) were added to refs/heads/feature/JCRVLT-580-parameterize-maven-version by this push:
new c65be56 releng: retry deleting directories on Windows
c65be56 is described below
commit c65be562dd079fac33304f787b8f53a72a97f1b1
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jan 7 17:11:26 2022 +0100
releng: retry deleting directories on Windows
---
.../packaging/integration/IntegrationTestBase.java | 25 ++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
index 8e522bc..52e5980 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
@@ -109,6 +109,7 @@ import org.apache.jackrabbit.vault.packaging.impl.ActivityLog;
import org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl;
import org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage;
import org.apache.jackrabbit.vault.packaging.registry.impl.JcrPackageRegistry;
+import org.codehaus.plexus.util.Os;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -268,18 +269,38 @@ public class IntegrationTestBase {
return new DataStoreBlobStore(fds);
}
+ private static void deleteDirectory(File directory) throws IOException {
+ try {
+ FileUtils.deleteDirectory(DIR_OAK_REPO_HOME);
+ } catch (IOException ioe) {
+ // retry after wait on Windows, as it may release file locks in a deferred manner
+ if (Os.isFamily(Os.FAMILY_WINDOWS)) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ie) {
+ Thread.currentThread().interrupt();
+ IOException wrappedIOException = new IOException("Initially failed with IOException and waiting was interrupted", ioe);
+ wrappedIOException.addSuppressed(ie);
+ }
+ FileUtils.deleteDirectory(DIR_OAK_REPO_HOME);
+ } else {
+ throw ioe;
+ }
+ }
+ }
+
@AfterClass
public static void shutdownRepository() throws IOException {
if (repository instanceof RepositoryImpl) {
((RepositoryImpl) repository).shutdown();
- FileUtils.deleteDirectory(DIR_JR2_REPO_HOME);
+ deleteDirectory(DIR_JR2_REPO_HOME);
} else if (repository instanceof org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl) {
((org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl) repository).shutdown();
if (fileStore != null) {
fileStore.close();
fileStore = null;
}
- FileUtils.deleteDirectory(DIR_OAK_REPO_HOME);
+ deleteDirectory(DIR_OAK_REPO_HOME);
}
repository = null;
}