You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2022/03/07 16:36:38 UTC
[solr] branch branch_9x updated: SOLR-16074: Use PathUtils.deleteDirectory(path) to try to avoid commons-io IO-751 (#729)
This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 3c3fb1d SOLR-16074: Use PathUtils.deleteDirectory(path) to try to avoid commons-io IO-751 (#729)
3c3fb1d is described below
commit 3c3fb1df82c5144c0d6b36b7c0fd3bc0343cf15b
Author: Kevin Risden <ri...@users.noreply.github.com>
AuthorDate: Mon Mar 7 11:35:22 2022 -0500
SOLR-16074: Use PathUtils.deleteDirectory(path) to try to avoid commons-io IO-751 (#729)
Co-authored-by: Mike Drob <md...@apache.org>
Co-authored-by: Houston Putman <ho...@apache.org>
---
.../forbidden-apis/commons-io.commons-io.all.txt | 8 +++
gradle/validation/forbidden-apis/defaults.all.txt | 6 --
solr/CHANGES.txt | 2 +
.../java/org/apache/solr/bench/BaseBenchState.java | 15 ++---
.../src/java/org/apache/solr/cloud/CloudUtil.java | 4 +-
.../org/apache/solr/core/DirectoryFactory.java | 9 +--
.../src/java/org/apache/solr/core/SolrCore.java | 12 ++--
.../apache/solr/core/StandardDirectoryFactory.java | 6 +-
.../repository/LocalFileSystemRepository.java | 46 +++++----------
.../designer/SchemaDesignerConfigSetHelper.java | 4 +-
.../src/java/org/apache/solr/util/SolrCLI.java | 3 +-
.../org/apache/solr/cloud/TestDistributedMap.java | 4 +-
.../analysis/TestManagedSynonymFilterFactory.java | 14 ++---
.../TestManagedSynonymGraphFilterFactory.java | 3 +-
.../test/org/apache/solr/util/AuthToolTest.java | 3 +-
.../solr/security/hadoop/KerberosTestServices.java | 4 +-
.../org/apache/solr/ltr/TestLTROnSolrCloud.java | 12 ++--
.../test/org/apache/solr/ltr/TestRerankBase.java | 68 +++++++++++-----------
.../apache/solr/ltr/model/TestAdapterModel.java | 12 ++--
.../solr/ltr/model/TestDefaultWrapperModel.java | 23 ++++----
.../solr/ltr/store/rest/TestModelManager.java | 2 +-
.../store/rest/TestModelManagerPersistence.java | 22 ++++---
.../AbstractEmbeddedSolrServerTestCase.java | 3 +-
.../solr/common/cloud/TestZkMaintenanceUtils.java | 4 +-
.../java/org/apache/solr/SolrJettyTestBase.java | 4 +-
25 files changed, 143 insertions(+), 150 deletions(-)
diff --git a/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt b/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt
new file mode 100644
index 0000000..386c5cc
--- /dev/null
+++ b/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt
@@ -0,0 +1,8 @@
+@defaultMessage Use InputStream.transferTo(OutputStream) or Reader.transferTo(Writer) instead
+org.apache.commons.io.IOUtils#copy(java.io.InputStream, java.io.OutputStream)
+org.apache.commons.io.IOUtils#copyLarge(java.io.InputStream, java.io.OutputStream)
+org.apache.commons.io.IOUtils#copy(java.io.Reader, java.io.Writer)
+org.apache.commons.io.IOUtils#copyLarge(java.io.Reader, java.io.Writer)
+
+@defaultMessage Use org.apache.commons.io.file.PathUtils#deleteDirectory(java.nio.file.Path) instead
+org.apache.commons.io.FileUtils#deleteDirectory(java.io.File)
diff --git a/gradle/validation/forbidden-apis/defaults.all.txt b/gradle/validation/forbidden-apis/defaults.all.txt
index e04c085..51643a0 100644
--- a/gradle/validation/forbidden-apis/defaults.all.txt
+++ b/gradle/validation/forbidden-apis/defaults.all.txt
@@ -91,9 +91,3 @@ java.lang.System#currentTimeMillis()
@defaultMessage Use slf4j classes instead
java.util.logging.**
-
-@defaultMessage Use InputStream.transferTo(OutputStream) or Reader.transferTo(Writer) instead
-org.apache.commons.io.IOUtils#copy(java.io.InputStream, java.io.OutputStream)
-org.apache.commons.io.IOUtils#copyLarge(java.io.InputStream, java.io.OutputStream)
-org.apache.commons.io.IOUtils#copy(java.io.Reader, java.io.Writer)
-org.apache.commons.io.IOUtils#copyLarge(java.io.Reader, java.io.Writer)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 819625a..2e4a4c5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -603,6 +603,8 @@ and each individual module's jar will be included in its directory's lib/ folder
* SOLR-16043: Fix HDFS tests - "Command processor" thread leak (Mike Drob, Kevin Risden)
+* SOLR-16074: Use PathUtils.deleteDirectory(path) to try to avoid commons-io IO-751 (Houston Putman, Mike Drob, Kevin Risden)
+
Bug Fixes
---------------------
* SOLR-15849: Fix the connection reset problem caused by the incorrect use of 4LW with \n when monitoring zooKeeper status (Fa Ming).
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java b/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
index 8bf2baf..4db40c0 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
@@ -17,14 +17,15 @@
package org.apache.solr.bench;
import com.sun.management.HotSpotDiagnosticMXBean;
-import java.io.File;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.lang.management.ManagementFactory;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.SplittableRandom;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.management.MBeanServer;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.bench.generators.SolrGen;
import org.apache.solr.common.util.SuppressForbidden;
import org.openjdk.jmh.annotations.Level;
@@ -122,16 +123,16 @@ public class BaseBenchState {
boolean dumpHeap = HEAP_DUMPED.compareAndExchange(false, true);
if (dumpHeap) {
- File file = new File(heapDump);
- FileUtils.deleteDirectory(file);
- file.mkdirs();
- File dumpFile = new File(file, benchmarkParams.id() + ".hprof");
+ Path file = Path.of(heapDump);
+ PathUtils.deleteDirectory(file);
+ Files.createDirectories(file);
+ Path dumpFile = file.resolve(benchmarkParams.id() + ".hprof");
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
HotSpotDiagnosticMXBean mxBean =
ManagementFactory.newPlatformMXBeanProxy(
server, "com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class);
- mxBean.dumpHeap(dumpFile.getAbsolutePath(), true);
+ mxBean.dumpHeap(dumpFile.toAbsolutePath().toString(), true);
}
}
}
diff --git a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
index 7ee6ecc..8594213 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
@@ -29,7 +29,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -88,7 +88,7 @@ public class CloudUtil {
}
try {
- FileUtils.deleteDirectory(desc.getInstanceDir().toFile());
+ PathUtils.deleteDirectory(desc.getInstanceDir());
} catch (IOException e) {
SolrException.log(
log,
diff --git a/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
index a6959c5..e2a9df6 100644
--- a/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
@@ -22,12 +22,13 @@ import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
+import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FilterDirectory;
import org.apache.lucene.store.FlushInfo;
@@ -394,9 +395,9 @@ public abstract class DirectoryFactory implements NamedListInitializedPlugin, Cl
// Extension point to allow sub-classes to infuse additional code when deleting old index
// directories
protected boolean deleteOldIndexDirectory(String oldDirPath) throws IOException {
- File dirToRm = new File(oldDirPath);
- FileUtils.deleteDirectory(dirToRm);
- return !dirToRm.isDirectory();
+ Path dirToRm = Path.of(oldDirPath);
+ PathUtils.deleteDirectory(dirToRm);
+ return !Files.isDirectory(dirToRm);
}
public void initCoreContainer(CoreContainer cc) {
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index ae93a502..11d08a3 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -64,7 +64,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexDeletionPolicy;
@@ -3276,7 +3276,7 @@ public final class SolrCore implements SolrInfoBean, Closeable {
public void postClose(SolrCore core) {
if (desc != null) {
try {
- FileUtils.deleteDirectory(desc.getInstanceDir().toFile());
+ PathUtils.deleteDirectory(desc.getInstanceDir());
} catch (IOException e) {
SolrException.log(
log,
@@ -3294,20 +3294,20 @@ public final class SolrCore implements SolrInfoBean, Closeable {
public static void deleteUnloadedCore(
CoreDescriptor cd, boolean deleteDataDir, boolean deleteInstanceDir) {
if (deleteDataDir) {
- File dataDir = cd.getInstanceDir().resolve(cd.getDataDir()).toFile();
+ Path dataDir = cd.getInstanceDir().resolve(cd.getDataDir());
try {
- FileUtils.deleteDirectory(dataDir);
+ PathUtils.deleteDirectory(dataDir);
} catch (IOException e) {
log.error(
"Failed to delete data dir for unloaded core: {} dir: {}",
cd.getName(),
- dataDir.getAbsolutePath(),
+ dataDir.toAbsolutePath(),
e);
}
}
if (deleteInstanceDir) {
try {
- FileUtils.deleteDirectory(cd.getInstanceDir().toFile());
+ PathUtils.deleteDirectory(cd.getInstanceDir());
} catch (IOException e) {
log.error(
"Failed to delete instance dir for unloaded core: {} dir: {}",
diff --git a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
index 353763e..09078b6 100644
--- a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
@@ -25,7 +25,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.Locale;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IOContext;
@@ -87,8 +87,8 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
@Override
protected void removeDirectory(CacheValue cacheValue) throws IOException {
- File dirFile = new File(cacheValue.path);
- FileUtils.deleteDirectory(dirFile);
+ Path dirPath = Path.of(cacheValue.path);
+ PathUtils.deleteDirectory(dirPath);
}
/**
diff --git a/solr/core/src/java/org/apache/solr/core/backup/repository/LocalFileSystemRepository.java b/solr/core/src/java/org/apache/solr/core/backup/repository/LocalFileSystemRepository.java
index 2d48556..fac7d9e 100644
--- a/solr/core/src/java/org/apache/solr/core/backup/repository/LocalFileSystemRepository.java
+++ b/solr/core/src/java/org/apache/solr/core/backup/repository/LocalFileSystemRepository.java
@@ -22,16 +22,13 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;
-import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
import java.util.Collection;
import java.util.Objects;
+import org.apache.commons.io.file.PathUtils;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IOContext;
@@ -69,10 +66,10 @@ public class LocalFileSystemRepository implements BackupRepository {
try {
result = new URI(location);
if (!result.isAbsolute()) {
- result = Paths.get(location).toUri();
+ result = Path.of(location).toUri();
}
} catch (URISyntaxException ex) {
- result = Paths.get(location).toUri();
+ result = Path.of(location).toUri();
}
return result;
@@ -82,7 +79,7 @@ public class LocalFileSystemRepository implements BackupRepository {
public URI resolve(URI baseUri, String... pathComponents) {
Preconditions.checkArgument(pathComponents.length > 0);
- Path result = Paths.get(baseUri);
+ Path result = Path.of(baseUri);
for (int i = 0; i < pathComponents.length; i++) {
try {
result = result.resolve(pathComponents[i]);
@@ -97,7 +94,7 @@ public class LocalFileSystemRepository implements BackupRepository {
@Override
public void createDirectory(URI path) throws IOException {
- Path p = Paths.get(path);
+ Path p = Path.of(path);
if (!Files.exists(p, LinkOption.NOFOLLOW_LINKS)) {
Files.createDirectory(p);
}
@@ -105,39 +102,24 @@ public class LocalFileSystemRepository implements BackupRepository {
@Override
public void deleteDirectory(URI path) throws IOException {
- Files.walkFileTree(
- Paths.get(path),
- new SimpleFileVisitor<Path>() {
- @Override
- public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
- throws IOException {
- Files.delete(file);
- return FileVisitResult.CONTINUE;
- }
-
- @Override
- public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
- Files.delete(dir);
- return FileVisitResult.CONTINUE;
- }
- });
+ PathUtils.deleteDirectory(Path.of(path));
}
@Override
public boolean exists(URI path) throws IOException {
- return Files.exists(Paths.get(path));
+ return Files.exists(Path.of(path));
}
@Override
public IndexInput openInput(URI dirPath, String fileName, IOContext ctx) throws IOException {
- try (FSDirectory dir = new NIOFSDirectory(Paths.get(dirPath), NoLockFactory.INSTANCE)) {
+ try (FSDirectory dir = new NIOFSDirectory(Path.of(dirPath), NoLockFactory.INSTANCE)) {
return dir.openInput(fileName, ctx);
}
}
@Override
public OutputStream createOutput(URI path) throws IOException {
- return Files.newOutputStream(Paths.get(path));
+ return Files.newOutputStream(Path.of(path));
}
@Override
@@ -148,21 +130,21 @@ public class LocalFileSystemRepository implements BackupRepository {
return new String[0];
}
- try (FSDirectory dir = new NIOFSDirectory(Paths.get(dirPath), NoLockFactory.INSTANCE)) {
+ try (FSDirectory dir = new NIOFSDirectory(Path.of(dirPath), NoLockFactory.INSTANCE)) {
return dir.listAll();
}
}
@Override
public PathType getPathType(URI path) throws IOException {
- return Files.isDirectory(Paths.get(path)) ? PathType.DIRECTORY : PathType.FILE;
+ return Files.isDirectory(Path.of(path)) ? PathType.DIRECTORY : PathType.FILE;
}
@Override
public void copyIndexFileFrom(
Directory sourceDir, String sourceFileName, URI destDir, String destFileName)
throws IOException {
- try (FSDirectory dir = new NIOFSDirectory(Paths.get(destDir), NoLockFactory.INSTANCE)) {
+ try (FSDirectory dir = new NIOFSDirectory(Path.of(destDir), NoLockFactory.INSTANCE)) {
copyIndexFileFrom(sourceDir, sourceFileName, dir, destFileName);
}
}
@@ -171,7 +153,7 @@ public class LocalFileSystemRepository implements BackupRepository {
public void copyIndexFileTo(
URI sourceDir, String sourceFileName, Directory dest, String destFileName)
throws IOException {
- try (FSDirectory dir = new NIOFSDirectory(Paths.get(sourceDir), NoLockFactory.INSTANCE)) {
+ try (FSDirectory dir = new NIOFSDirectory(Path.of(sourceDir), NoLockFactory.INSTANCE)) {
dest.copyFrom(dir, sourceFileName, destFileName, DirectoryFactory.IOCONTEXT_NO_CACHE);
}
}
@@ -181,7 +163,7 @@ public class LocalFileSystemRepository implements BackupRepository {
throws IOException {
if (files.isEmpty()) return;
- try (FSDirectory dir = new NIOFSDirectory(Paths.get(path), NoLockFactory.INSTANCE)) {
+ try (FSDirectory dir = new NIOFSDirectory(Path.of(path), NoLockFactory.INSTANCE)) {
for (String file : files) {
try {
dir.deleteFile(file);
diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
index 34505c3..3adaf09 100644
--- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
+++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
@@ -57,8 +57,8 @@ import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
@@ -1211,7 +1211,7 @@ class SchemaDesignerConfigSetHelper implements SchemaDesignerConstants {
});
}
} finally {
- FileUtils.deleteDirectory(tmpDirectory.toFile());
+ PathUtils.deleteDirectory(tmpDirectory);
}
return baos.toByteArray();
}
diff --git a/solr/core/src/java/org/apache/solr/util/SolrCLI.java b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
index 79f6e0c..9448d66 100755
--- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
@@ -72,6 +72,7 @@ import org.apache.commons.exec.Executor;
import org.apache.commons.exec.OS;
import org.apache.commons.exec.environment.EnvironmentUtils;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.SystemUtils;
import org.apache.http.HttpEntity;
@@ -1830,7 +1831,7 @@ public class SolrCLI implements CLIO {
}
} catch (Exception e) {
/* create-core failed, cleanup the copied configset before propagating the error. */
- FileUtils.deleteDirectory(coreInstanceDir);
+ PathUtils.deleteDirectory(coreInstanceDir.toPath());
throw e;
}
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestDistributedMap.java b/solr/core/src/test/org/apache/solr/cloud/TestDistributedMap.java
index f1e3669..088250c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestDistributedMap.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestDistributedMap.java
@@ -20,7 +20,7 @@ import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Path;
import java.util.Locale;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.zookeeper.CreateMode;
@@ -49,7 +49,7 @@ public class TestDistributedMap extends SolrTestCaseJ4 {
zkServer = null;
}
if (null != zkDir) {
- FileUtils.deleteDirectory(zkDir.toFile());
+ PathUtils.deleteDirectory(zkDir);
zkDir = null;
}
}
diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
index cb03c7a..a837497 100644
--- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
@@ -18,8 +18,8 @@ package org.apache.solr.rest.schema.analysis;
import static org.apache.solr.common.util.Utils.toJSONString;
-import java.io.File;
import java.net.URLEncoder;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -27,7 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.util.RestTestBase;
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.After;
@@ -36,20 +36,20 @@ import org.junit.Test;
public class TestManagedSynonymFilterFactory extends RestTestBase {
- private static File tmpSolrHome;
+ private static Path tmpSolrHome;
/** Setup to make the schema mutable */
@Before
public void before() throws Exception {
- tmpSolrHome = createTempDir().toFile();
- FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
+ tmpSolrHome = createTempDir();
+ PathUtils.copyDirectory(TEST_PATH(), tmpSolrHome.toAbsolutePath());
final SortedMap<ServletHolder, String> extraServlets = new TreeMap<>();
System.setProperty("managed.schema.mutable", "true");
System.setProperty("enable.update.log", "false");
createJettyAndHarness(
- tmpSolrHome.getAbsolutePath(),
+ tmpSolrHome.toAbsolutePath().toString(),
"solrconfig-managed-schema.xml",
"schema-rest.xml",
"/solr",
@@ -64,7 +64,7 @@ public class TestManagedSynonymFilterFactory extends RestTestBase {
jetty = null;
}
if (null != tmpSolrHome) {
- FileUtils.deleteDirectory(tmpSolrHome);
+ PathUtils.deleteDirectory(tmpSolrHome);
tmpSolrHome = null;
}
System.clearProperty("managed.schema.mutable");
diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java
index 9d902bb..dc2c23b 100644
--- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java
@@ -29,6 +29,7 @@ import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.util.RestTestBase;
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.After;
@@ -67,7 +68,7 @@ public class TestManagedSynonymGraphFilterFactory extends RestTestBase {
jetty = null;
}
if (null != tmpSolrHome) {
- FileUtils.deleteDirectory(tmpSolrHome);
+ PathUtils.deleteDirectory(tmpSolrHome.toPath());
}
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
diff --git a/solr/core/src/test/org/apache/solr/util/AuthToolTest.java b/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
index 5bec00d..1f00461 100644
--- a/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
+++ b/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
@@ -23,6 +23,7 @@ import static org.apache.solr.util.SolrCLI.parseCmdLine;
import java.nio.file.Files;
import java.nio.file.Path;
import org.apache.commons.cli.CommandLine;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.junit.After;
import org.junit.Before;
@@ -51,7 +52,7 @@ public class AuthToolTest extends SolrCloudTestCase {
public void tearDown() throws Exception {
super.tearDown();
if (null != dir) {
- org.apache.commons.io.FileUtils.deleteDirectory(dir.toFile());
+ PathUtils.deleteDirectory(dir);
dir = null;
}
}
diff --git a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/KerberosTestServices.java b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/KerberosTestServices.java
index 3208ed2..a25132e 100644
--- a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/KerberosTestServices.java
+++ b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/KerberosTestServices.java
@@ -28,7 +28,7 @@ import java.util.Objects;
import java.util.Properties;
import javax.security.auth.login.AppConfigurationEntry;
import javax.security.auth.login.Configuration;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.hadoop.minikdc.MiniKdc;
import org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder;
import org.slf4j.Logger;
@@ -74,7 +74,7 @@ public class KerberosTestServices {
kdc = getKdc(workDir, debug);
kdc.start();
} catch (BindException e) {
- FileUtils.deleteDirectory(workDir); // clean directory
+ PathUtils.deleteDirectory(workDir.toPath()); // clean directory
numTries++;
if (numTries == 3) {
log.error("Failed setting up MiniKDC. Tried {} times.", numTries);
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
index d64cba9..e38e489 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
@@ -18,11 +18,11 @@ package org.apache.solr.ltr;
import static java.util.stream.Collectors.toList;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
-import java.io.File;
+import java.nio.file.Path;
import java.util.Collections;
import java.util.List;
import java.util.stream.IntStream;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.embedded.JettyConfig;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -326,9 +326,9 @@ public class TestLTROnSolrCloud extends TestRerankBase {
private void setupSolrCluster(int numShards, int numReplicas, int numServers) throws Exception {
JettyConfig jc = buildJettyConfig("/solr");
jc = JettyConfig.builder(jc).build();
- solrCluster = new MiniSolrCloudCluster(numServers, tmpSolrHome.toPath(), jc);
- File configDir = tmpSolrHome.toPath().resolve("collection1/conf").toFile();
- solrCluster.uploadConfigSet(configDir.toPath(), "conf1");
+ solrCluster = new MiniSolrCloudCluster(numServers, tmpSolrHome, jc);
+ Path configDir = tmpSolrHome.resolve("collection1/conf");
+ solrCluster.uploadConfigSet(configDir, "conf1");
solrCluster.getSolrClient().setDefaultCollection(COLLECTION);
@@ -475,7 +475,7 @@ public class TestLTROnSolrCloud extends TestRerankBase {
@AfterClass
public static void after() throws Exception {
if (null != tmpSolrHome) {
- FileUtils.deleteDirectory(tmpSolrHome);
+ PathUtils.deleteDirectory(tmpSolrHome);
tmpSolrHome = null;
}
System.clearProperty("managed.schema.mutable");
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java
index 4f96ef6..3089263 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java
@@ -16,19 +16,19 @@
*/
package org.apache.solr.ltr;
-import java.io.File;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
@@ -49,10 +49,10 @@ public class TestRerankBase extends RestTestBase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
protected static final SolrResourceLoader solrResourceLoader =
- new SolrResourceLoader(Paths.get("").toAbsolutePath());
+ new SolrResourceLoader(Path.of("").toAbsolutePath());
- protected static File tmpSolrHome;
- protected static File tmpConfDir;
+ protected static Path tmpSolrHome;
+ protected static Path tmpConfDir;
public static final String FEATURE_FILE_NAME = "_schema_feature-store.json";
public static final String MODEL_FILE_NAME = "_schema_model-store.json";
@@ -61,8 +61,8 @@ public class TestRerankBase extends RestTestBase {
protected static final String COLLECTION = "collection1";
protected static final String CONF_DIR = COLLECTION + "/conf";
- protected static File fstorefile = null;
- protected static File mstorefile = null;
+ protected static Path fstorefile = null;
+ protected static Path mstorefile = null;
private static final String SYSTEM_PROPERTY_SOLR_LTR_TRANSFORMER_FV_DEFAULTFORMAT =
"solr.ltr.transformer.fv.defaultFormat";
@@ -134,40 +134,40 @@ public class TestRerankBase extends RestTestBase {
protected static void setupTestInit(String solrconfig, String schema, boolean isPersistent)
throws Exception {
- tmpSolrHome = createTempDir().toFile();
- tmpConfDir = new File(tmpSolrHome, CONF_DIR);
- tmpConfDir.deleteOnExit();
- FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
+ tmpSolrHome = createTempDir();
+ tmpConfDir = tmpSolrHome.resolve(CONF_DIR);
+ tmpConfDir.toFile().deleteOnExit();
+ PathUtils.copyDirectory(TEST_PATH(), tmpSolrHome.toAbsolutePath());
- final File fstore = new File(tmpConfDir, FEATURE_FILE_NAME);
- final File mstore = new File(tmpConfDir, MODEL_FILE_NAME);
+ final Path fstore = tmpConfDir.resolve(FEATURE_FILE_NAME);
+ final Path mstore = tmpConfDir.resolve(MODEL_FILE_NAME);
if (isPersistent) {
fstorefile = fstore;
mstorefile = mstore;
}
- if (fstore.exists()) {
+ if (Files.exists(fstore)) {
if (log.isInfoEnabled()) {
- log.info("remove feature store config file in {}", fstore.getAbsolutePath());
+ log.info("remove feature store config file in {}", fstore.toAbsolutePath());
}
- Files.delete(fstore.toPath());
+ Files.delete(fstore);
}
- if (mstore.exists()) {
+ if (Files.exists(mstore)) {
if (log.isInfoEnabled()) {
- log.info("remove model store config file in {}", mstore.getAbsolutePath());
+ log.info("remove model store config file in {}", mstore.toAbsolutePath());
}
- Files.delete(mstore.toPath());
+ Files.delete(mstore);
}
if (!solrconfig.equals("solrconfig.xml")) {
- FileUtils.copyFile(
- new File(tmpSolrHome.getAbsolutePath() + "/collection1/conf/" + solrconfig),
- new File(tmpSolrHome.getAbsolutePath() + "/collection1/conf/solrconfig.xml"));
+ Files.copy(
+ tmpSolrHome.resolve(CONF_DIR).resolve(solrconfig),
+ tmpSolrHome.resolve(CONF_DIR).resolve("solrconfig.xml"));
}
if (!schema.equals("schema.xml")) {
- FileUtils.copyFile(
- new File(tmpSolrHome.getAbsolutePath() + "/collection1/conf/" + schema),
- new File(tmpSolrHome.getAbsolutePath() + "/collection1/conf/schema.xml"));
+ Files.copy(
+ tmpSolrHome.resolve(CONF_DIR).resolve(schema),
+ tmpSolrHome.resolve(CONF_DIR).resolve("schema.xml"));
}
System.setProperty("managed.schema.mutable", "true");
@@ -178,14 +178,16 @@ public class TestRerankBase extends RestTestBase {
setupTestInit(solrconfig, schema, false);
System.setProperty("enable.update.log", "false");
- createJettyAndHarness(tmpSolrHome.getAbsolutePath(), solrconfig, schema, "/solr", true, null);
+ createJettyAndHarness(
+ tmpSolrHome.toAbsolutePath().toString(), solrconfig, schema, "/solr", true, null);
}
public static void setupPersistentTest(String solrconfig, String schema) throws Exception {
setupTestInit(solrconfig, schema, true);
- createJettyAndHarness(tmpSolrHome.getAbsolutePath(), solrconfig, schema, "/solr", true, null);
+ createJettyAndHarness(
+ tmpSolrHome.toAbsolutePath().toString(), solrconfig, schema, "/solr", true, null);
}
protected static void aftertest() throws Exception {
@@ -198,7 +200,7 @@ public class TestRerankBase extends RestTestBase {
jetty = null;
}
if (null != tmpSolrHome) {
- FileUtils.deleteDirectory(tmpSolrHome);
+ PathUtils.deleteDirectory(tmpSolrHome);
tmpSolrHome = null;
}
System.clearProperty("managed.schema.mutable");
@@ -292,7 +294,7 @@ public class TestRerankBase extends RestTestBase {
public static void loadModels(String fileName) throws Exception {
final URL url = TestRerankBase.class.getResource("/modelExamples/" + fileName);
- final String multipleModels = FileUtils.readFileToString(new File(url.toURI()), "UTF-8");
+ final String multipleModels = Files.readString(Path.of(url.toURI()), StandardCharsets.UTF_8);
assertJPut(ManagedModelStore.REST_END_POINT, multipleModels, "/responseHeader/status==0");
}
@@ -307,11 +309,11 @@ public class TestRerankBase extends RestTestBase {
String modelFileName, String featureFileName, String featureStoreName)
throws ModelException, Exception {
URL url = TestRerankBase.class.getResource("/modelExamples/" + modelFileName);
- final String modelJson = FileUtils.readFileToString(new File(url.toURI()), "UTF-8");
+ final String modelJson = Files.readString(Path.of(url.toURI()), StandardCharsets.UTF_8);
final ManagedModelStore ms = getManagedModelStore();
url = TestRerankBase.class.getResource("/featureExamples/" + featureFileName);
- final String featureJson = FileUtils.readFileToString(new File(url.toURI()), "UTF-8");
+ final String featureJson = Files.readString(Path.of(url.toURI()), StandardCharsets.UTF_8);
Object parsedFeatureJson = null;
try {
@@ -349,7 +351,7 @@ public class TestRerankBase extends RestTestBase {
public static void loadFeatures(String fileName) throws Exception {
final URL url = TestRerankBase.class.getResource("/featureExamples/" + fileName);
- final String multipleFeatures = FileUtils.readFileToString(new File(url.toURI()), "UTF-8");
+ final String multipleFeatures = Files.readString(Path.of(url.toURI()), StandardCharsets.UTF_8);
log.info("send \n{}", multipleFeatures);
assertJPut(ManagedFeatureStore.REST_END_POINT, multipleFeatures, "/responseHeader/status==0");
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
index 37426c1..bc992cf 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
@@ -19,13 +19,13 @@ package org.apache.solr.ltr.model;
import java.io.BufferedReader;
import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import org.apache.lucene.index.LeafReaderContext;
@@ -62,13 +62,13 @@ public class TestAdapterModel extends TestRerankBase {
"popularity", FieldValueFeature.class.getName(), "test", "{\"field\":\"popularity\"}");
scoreValue = random().nextFloat();
- final File scoreValueFile = new File(tmpConfDir, "scoreValue.txt");
+ final Path scoreValueFile = tmpConfDir.resolve("scoreValue.txt");
try (BufferedWriter writer =
new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(scoreValueFile), StandardCharsets.UTF_8))) {
+ new OutputStreamWriter(
+ Files.newOutputStream(scoreValueFile), StandardCharsets.UTF_8))) {
writer.write(Float.toString(scoreValue));
}
- scoreValueFile.deleteOnExit();
final String modelJson =
getModelInJson(
@@ -76,7 +76,7 @@ public class TestAdapterModel extends TestRerankBase {
CustomModel.class.getName(),
new String[] {"popularity"},
"test",
- "{\"answerFileName\":\"" + scoreValueFile.getName() + "\"}");
+ "{\"answerFileName\":\"" + scoreValueFile.getFileName().toString() + "\"}");
assertJPut(ManagedModelStore.REST_END_POINT, modelJson, "/responseHeader/status==0");
}
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestDefaultWrapperModel.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestDefaultWrapperModel.java
index 4ded7d4..2fbad29 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestDefaultWrapperModel.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestDefaultWrapperModel.java
@@ -18,10 +18,10 @@
package org.apache.solr.ltr.model;
import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
@@ -37,7 +37,7 @@ import org.junit.Test;
public class TestDefaultWrapperModel extends TestRerankBase {
private static final String featureStoreName = "test";
- private static File baseModelFile = null;
+ private static Path baseModelFile = null;
static List<Feature> features = null;
@@ -66,13 +66,12 @@ public class TestDefaultWrapperModel extends TestRerankBase {
featureStoreName,
"{\"weights\":{\"popularity\":-1.0, \"const\":1.0}}");
// prepare the base model as a file resource
- baseModelFile = new File(tmpConfDir, "baseModel.json");
+ baseModelFile = tmpConfDir.resolve("baseModel.json");
try (BufferedWriter writer =
new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(baseModelFile), StandardCharsets.UTF_8))) {
+ new OutputStreamWriter(Files.newOutputStream(baseModelFile), StandardCharsets.UTF_8))) {
writer.write(baseModelJson);
}
- baseModelFile.deleteOnExit();
}
@After
@@ -92,7 +91,9 @@ public class TestDefaultWrapperModel extends TestRerankBase {
public void testLoadModelFromResource() throws Exception {
String wrapperModelJson =
getDefaultWrapperModelInJson(
- "fileWrapper", new String[0], "{\"resource\":\"" + baseModelFile.getName() + "\"}");
+ "fileWrapper",
+ new String[0],
+ "{\"resource\":\"" + baseModelFile.getFileName().toString() + "\"}");
assertJPut(ManagedModelStore.REST_END_POINT, wrapperModelJson, "/responseHeader/status==0");
final SolrQuery query = new SolrQuery();
@@ -116,12 +117,12 @@ public class TestDefaultWrapperModel extends TestRerankBase {
getDefaultWrapperModelInJson(
"otherNestedWrapper",
new String[0],
- "{\"resource\":\"" + baseModelFile.getName() + "\"}");
- File otherWrapperModelFile = new File(tmpConfDir, "nestedWrapperModel.json");
+ "{\"resource\":\"" + baseModelFile.getFileName().toString() + "\"}");
+ Path otherWrapperModelFile = tmpConfDir.resolve("nestedWrapperModel.json");
try (BufferedWriter writer =
new BufferedWriter(
new OutputStreamWriter(
- new FileOutputStream(otherWrapperModelFile), StandardCharsets.UTF_8))) {
+ Files.newOutputStream(otherWrapperModelFile), StandardCharsets.UTF_8))) {
writer.write(otherWrapperModelJson);
}
@@ -129,7 +130,7 @@ public class TestDefaultWrapperModel extends TestRerankBase {
getDefaultWrapperModelInJson(
"nestedWrapper",
new String[0],
- "{\"resource\":\"" + otherWrapperModelFile.getName() + "\"}");
+ "{\"resource\":\"" + otherWrapperModelFile.getFileName().toString() + "\"}");
assertJPut(ManagedModelStore.REST_END_POINT, wrapperModelJson, "/responseHeader/status==0");
final SolrQuery query = new SolrQuery();
query.setQuery("{!func}pow(popularity,2)");
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManager.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManager.java
index cda8dbd..96eeda9 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManager.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManager.java
@@ -39,7 +39,7 @@ public class TestModelManager extends TestRerankBase {
@Test
public void test() throws Exception {
- final SolrResourceLoader loader = new SolrResourceLoader(tmpSolrHome.toPath());
+ final SolrResourceLoader loader = new SolrResourceLoader(tmpSolrHome);
final RestManager.Registry registry = loader.getManagedResourceRegistry();
assertNotNull(
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManagerPersistence.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManagerPersistence.java
index 7e42837..3b8f076 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManagerPersistence.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/store/rest/TestModelManagerPersistence.java
@@ -17,14 +17,13 @@
package org.apache.solr.ltr.store.rest;
import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.apache.commons.io.FileUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.ltr.TestRerankBase;
import org.apache.solr.ltr.feature.Feature;
@@ -82,8 +81,8 @@ public class TestModelManagerPersistence extends TestRerankBase {
new String[] {"feature1"},
"test1",
"{\"weights\":{\"feature1\":1.0}}");
- final String fstorecontent = FileUtils.readFileToString(fstorefile, "UTF-8");
- final String mstorecontent = FileUtils.readFileToString(mstorefile, "UTF-8");
+ final String fstorecontent = Files.readString(fstorefile, StandardCharsets.UTF_8);
+ final String mstorecontent = Files.readString(mstorefile, StandardCharsets.UTF_8);
// check feature/model stores on deletion
@SuppressWarnings({"unchecked"})
@@ -230,13 +229,12 @@ public class TestModelManagerPersistence extends TestRerankBase {
new String[] {"popularity", "const"},
FS_NAME,
"{\"weights\":{\"popularity\":-1.0, \"const\":1.0}}");
- File baseModelFile = new File(tmpConfDir, "baseModelForPersistence.json");
+ Path baseModelFile = tmpConfDir.resolve("baseModelForPersistence.json");
try (BufferedWriter writer =
new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(baseModelFile), StandardCharsets.UTF_8))) {
+ new OutputStreamWriter(Files.newOutputStream(baseModelFile), StandardCharsets.UTF_8))) {
writer.write(baseModelJson);
}
- baseModelFile.deleteOnExit();
// setup wrapper model
String wrapperModelJson =
@@ -245,18 +243,18 @@ public class TestModelManagerPersistence extends TestRerankBase {
DefaultWrapperModel.class.getName(),
new String[0],
FS_NAME,
- "{\"resource\":\"" + baseModelFile.getName() + "\"}");
+ "{\"resource\":\"" + baseModelFile.getFileName() + "\"}");
assertJPut(ManagedModelStore.REST_END_POINT, wrapperModelJson, "/responseHeader/status==0");
- doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getName());
+ doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getFileName().toString());
// check persistence after reload
restTestHarness.reload();
- doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getName());
+ doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getFileName().toString());
// check persistence after restart
jetty.stop();
jetty.start();
- doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getName());
+ doWrapperModelPersistenceChecks(modelName, FS_NAME, baseModelFile.getFileName().toString());
// delete test settings
restTestHarness.delete(ManagedModelStore.REST_END_POINT + "/" + modelName);
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
index 439d85d..7a46507 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
@@ -19,6 +19,7 @@ package org.apache.solr.client.solrj.embedded;
import java.io.File;
import java.nio.file.Path;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.core.CoreContainer;
@@ -86,7 +87,7 @@ public abstract class AbstractEmbeddedSolrServerTestCase extends SolrTestCaseJ4
@AfterClass
public static void tearDownHome() throws Exception {
if (SOLR_HOME != null) {
- FileUtils.deleteDirectory(SOLR_HOME.toFile());
+ PathUtils.deleteDirectory(SOLR_HOME);
}
}
diff --git a/solr/solrj/src/test/org/apache/solr/common/cloud/TestZkMaintenanceUtils.java b/solr/solrj/src/test/org/apache/solr/common/cloud/TestZkMaintenanceUtils.java
index 4b6d79d..b2c92e8 100644
--- a/solr/solrj/src/test/org/apache/solr/common/cloud/TestZkMaintenanceUtils.java
+++ b/solr/solrj/src/test/org/apache/solr/common/cloud/TestZkMaintenanceUtils.java
@@ -25,7 +25,7 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.cloud.ZkTestServer;
@@ -55,7 +55,7 @@ public class TestZkMaintenanceUtils extends SolrTestCaseJ4 {
zkServer = null;
}
if (null != zkDir) {
- FileUtils.deleteDirectory(zkDir.toFile());
+ PathUtils.deleteDirectory(zkDir);
zkDir = null;
}
}
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
index b9d6c89..d96f697 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
@@ -27,7 +27,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Properties;
import java.util.SortedMap;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.embedded.JettyConfig;
@@ -174,7 +174,7 @@ public abstract class SolrJettyTestBase extends SolrTestCaseJ4 {
public static void cleanUpJettyHome(File solrHome) throws Exception {
if (solrHome.exists()) {
- FileUtils.deleteDirectory(solrHome);
+ PathUtils.deleteDirectory(solrHome.toPath());
}
}