diff --git a/src/log4net.Tests/Appender/RollingFileAppenderTest.cs b/src/log4net.Tests/Appender/RollingFileAppenderTest.cs
index c6e59387..101b390b 100644
--- a/src/log4net.Tests/Appender/RollingFileAppenderTest.cs
+++ b/src/log4net.Tests/Appender/RollingFileAppenderTest.cs
@@ -2013,6 +2013,17 @@ public void TestInitializeRollBackups4()
VerifyInitializeRollBackups(8, iMaxRollBackups);
}
+ ///
+ /// Ensures that no problems result from creating and then closing the appender
+ /// when it has not also been initialized with ActivateOptions().
+ ///
+ [Test]
+ public void TestCreateCloseNoActivateOptions()
+ {
+ var appender = new RollingFileAppender();
+ appender.Close();
+ }
+
///
///
///
diff --git a/src/log4net.Tests/log4net.Tests.csproj b/src/log4net.Tests/log4net.Tests.csproj
index 414b2a2d..23090bb6 100644
--- a/src/log4net.Tests/log4net.Tests.csproj
+++ b/src/log4net.Tests/log4net.Tests.csproj
@@ -68,6 +68,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/log4net/Appender/FileAppender.cs b/src/log4net/Appender/FileAppender.cs
index 4179190d..14a3e359 100644
--- a/src/log4net/Appender/FileAppender.cs
+++ b/src/log4net/Appender/FileAppender.cs
@@ -169,7 +169,7 @@ private LockStateException(SerializationInfo info, StreamingContext context) : b
}
private Stream m_realStream = null;
- private LockingModelBase m_lockingModel = null;
+ private readonly LockingModelBase m_lockingModel;
private int m_lockLevel = 0;
public LockingStream(LockingModelBase locking)
@@ -1306,7 +1306,7 @@ protected override void Reset()
protected override void OnClose()
{
base.OnClose();
- m_lockingModel.OnClose();
+ m_lockingModel?.OnClose();
}
///