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(); } ///