Skip to content

Commit db0351a

Browse files
committed
[UNDERTOW-1794] Add properties to allow set retry count/delay
1 parent 0402edc commit db0351a

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

core/src/main/java/io/undertow/server/handlers/accesslog/DefaultAccessLogReceiver.java

+25-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.nio.file.Files;
2727
import java.nio.file.Path;
2828
import java.nio.file.StandardOpenOption;
29+
import java.security.AccessController;
30+
import java.security.PrivilegedAction;
2931
import java.text.SimpleDateFormat;
3032
import java.util.Calendar;
3133
import java.util.Date;
@@ -52,6 +54,8 @@ public class DefaultAccessLogReceiver implements AccessLogReceiver, Runnable, Cl
5254
private static final String DEFAULT_LOG_SUFFIX = "log";
5355
private static final int DEFAULT_RETRY_COUNT = 150;
5456
private static final int DEFAULT_RETRY_DELAY = 200;
57+
public static final String DEFAULT_RETRY_COUNT_PROPERTY = "io.undertow.accesslog.logreceiver.retryCount";
58+
public static final String DEFAULT_RETRY_DELAY_PROPERTY = "io.undertow.accesslog.logreceiver.retryDelay";
5559

5660
private final Executor logWriteExecutor;
5761

@@ -82,8 +86,8 @@ public class DefaultAccessLogReceiver implements AccessLogReceiver, Runnable, Cl
8286
private boolean initialRun = true;
8387
private final boolean rotate;
8488
private final LogFileHeaderGenerator fileHeaderGenerator;
85-
private final int closeRetryCount = DEFAULT_RETRY_COUNT;
86-
private final int closeRetryDelay = DEFAULT_RETRY_DELAY;
89+
private final int closeRetryCount;
90+
private final int closeRetryDelay;
8791

8892
public DefaultAccessLogReceiver(final Executor logWriteExecutor, final File outputDirectory, final String logBaseName) {
8993
this(logWriteExecutor, outputDirectory.toPath(), logBaseName, null);
@@ -109,6 +113,7 @@ public DefaultAccessLogReceiver(final Executor logWriteExecutor, final Path outp
109113
this(logWriteExecutor, outputDirectory, logBaseName, logNameSuffix, rotate, null);
110114
}
111115

116+
@SuppressWarnings({ "removal", "deprecation" })
112117
public DefaultAccessLogReceiver(final Executor logWriteExecutor, final Path outputDirectory, final String logBaseName, final String logNameSuffix, boolean rotate, LogFileHeaderGenerator fileHeader) {
113118
this.logWriteExecutor = logWriteExecutor;
114119
this.outputDirectory = outputDirectory;
@@ -119,6 +124,24 @@ public DefaultAccessLogReceiver(final Executor logWriteExecutor, final Path outp
119124
this.pendingMessages = new ConcurrentLinkedDeque<>();
120125
this.defaultLogFile = outputDirectory.resolve(logBaseName + this.logNameSuffix);
121126
calculateChangeOverPoint();
127+
128+
String property = System.getSecurityManager() == null ? System.getProperty(DEFAULT_RETRY_COUNT_PROPERTY)
129+
: AccessController.doPrivileged(new PrivilegedAction<String>() {
130+
@Override
131+
public String run() {
132+
return System.getProperty(DEFAULT_RETRY_COUNT_PROPERTY);
133+
}
134+
});
135+
this.closeRetryCount = property == null ? DEFAULT_RETRY_COUNT : Integer.parseInt(property);
136+
137+
property = System.getSecurityManager() == null ? System.getProperty(DEFAULT_RETRY_DELAY_PROPERTY)
138+
: AccessController.doPrivileged(new PrivilegedAction<String>() {
139+
@Override
140+
public String run() {
141+
return System.getProperty(DEFAULT_RETRY_DELAY_PROPERTY);
142+
}
143+
});
144+
this.closeRetryDelay = property == null ? DEFAULT_RETRY_DELAY : Integer.parseInt(property);
122145
}
123146

124147
private void calculateChangeOverPoint() {

0 commit comments

Comments
 (0)