Skip to content

Commit f3fa918

Browse files
committed
Fix NPE in AsyncLoggerConfigDisruptor
1 parent 88eb8fc commit f3fa918

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import com.lmax.disruptor.dsl.ProducerType;
3030
import java.util.concurrent.ThreadFactory;
3131
import java.util.concurrent.TimeUnit;
32+
33+
import edu.umd.cs.findbugs.annotations.Nullable;
3234
import org.apache.logging.log4j.Level;
3335
import org.apache.logging.log4j.core.AbstractLifeCycle;
3436
import org.apache.logging.log4j.core.LogEvent;
@@ -98,14 +100,18 @@ public String toString() {
98100
* </p>
99101
*/
100102
private static class Log4jEventWrapperHandler implements EventHandler<Log4jEventWrapper> {
103+
101104
private static final int NOTIFY_PROGRESS_THRESHOLD = 50;
105+
106+
@Nullable
102107
private Sequence sequenceCallback;
108+
103109
private int counter;
104110

105111
/*
106112
* Overrides a method from Disruptor 4.x. Do not remove.
107113
*/
108-
public void setSequenceCallback(final Sequence sequenceCallback) {
114+
public void setSequenceCallback(@Nullable final Sequence sequenceCallback) {
109115
this.sequenceCallback = sequenceCallback;
110116
}
111117

@@ -125,7 +131,9 @@ public void onEvent(final Log4jEventWrapper event, final long sequence, final bo
125131
*/
126132
private void notifyIntermediateProgress(final long sequence) {
127133
if (++counter > NOTIFY_PROGRESS_THRESHOLD) {
128-
sequenceCallback.set(sequence);
134+
if (sequenceCallback != null) {
135+
sequenceCallback.set(sequence);
136+
}
129137
counter = 0;
130138
}
131139
}

0 commit comments

Comments
 (0)