You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/06/06 11:47:13 UTC
[tomcat] branch 8.5.x updated: Don't try and clean directory that doesn't exists + refactoring
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new 44044106be Don't try and clean directory that doesn't exists + refactoring
44044106be is described below
commit 44044106be18101d3c5e9a824681db847f66839b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Jun 6 12:37:48 2022 +0100
Don't try and clean directory that doesn't exists + refactoring
Avoid error message by not trying to clean up old files from the logging
directory before the directory has been created.
Based on #521 by HanLi.
Refactor obtaining Path for a given directory
---
java/org/apache/juli/FileHandler.java | 9 +++++++--
webapps/docs/changelog.xml | 5 +++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/java/org/apache/juli/FileHandler.java b/java/org/apache/juli/FileHandler.java
index 38e50c111e..7e3cfc8ddc 100644
--- a/java/org/apache/juli/FileHandler.java
+++ b/java/org/apache/juli/FileHandler.java
@@ -25,6 +25,7 @@ import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.nio.file.DirectoryStream;
+import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.security.AccessController;
@@ -527,7 +528,7 @@ public class FileHandler extends Handler {
}
private void clean() {
- if (maxDays <= 0) {
+ if (maxDays <= 0 || Files.notExists(getDirectoryAsPath())) {
return;
}
DELETE_FILES_SERVICE.submit(new Runnable() {
@@ -549,7 +550,7 @@ public class FileHandler extends Handler {
private DirectoryStream<Path> streamFilesForDelete() throws IOException {
final Date maxDaysOffset = getMaxDaysOffset();
final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- return Files.newDirectoryStream(new File(directory).toPath(),
+ return Files.newDirectoryStream(getDirectoryAsPath(),
new DirectoryStream.Filter<Path>() {
@Override
@@ -569,6 +570,10 @@ public class FileHandler extends Handler {
});
}
+ private Path getDirectoryAsPath() {
+ return FileSystems.getDefault().getPath(directory);
+ }
+
private String obtainDateFromPath(Path path) {
Path fileName = path.getFileName();
if (fileName == null) {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index c7b1dd71fd..17d1d88eb0 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -129,6 +129,11 @@
Include the major version in the recommended version used for Tomcat
Native with the <code>AprLifecycleListener</code>. (markt)
</add>
+ <fix>
+ <bug>66104</bug>: Avoid error message by not trying to clean up old
+ files from the logging directory before the directory has been created.
+ Based on <pr>521</pr> by HanLi. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org