You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2006/03/27 14:57:31 UTC
svn commit: r389130 - /logging/log4net/trunk/src/Appender/AdoNetAppender.cs
Author: nicko
Date: Mon Mar 27 04:57:23 2006
New Revision: 389130
URL: http://svn.apache.org/viewcvs?rev=389130&view=rev
Log:
Fix for LOG4NET-73. Added code to cleanup the connection and command objects that are stored in members if the InitializeDatabaseConnection method is called multiple times.
Modified:
logging/log4net/trunk/src/Appender/AdoNetAppender.cs
Modified: logging/log4net/trunk/src/Appender/AdoNetAppender.cs
URL: http://svn.apache.org/viewcvs/logging/log4net/trunk/src/Appender/AdoNetAppender.cs?rev=389130&r1=389129&r2=389130&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/AdoNetAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/AdoNetAppender.cs Mon Mar 27 04:57:23 2006
@@ -407,14 +407,30 @@
override protected void OnClose()
{
base.OnClose();
+
+ // Close the cached command and connection objects
if (m_dbCommand != null)
{
- m_dbCommand.Dispose();
+ try
+ {
+ m_dbCommand.Dispose();
+ }
+ catch (Exception ex)
+ {
+ LogLog.Warn("AdoNetAppender: Exception while disposing cached command object", ex);
+ }
m_dbCommand = null;
}
if (m_dbConnection != null)
{
- m_dbConnection.Close();
+ try
+ {
+ m_dbConnection.Close();
+ }
+ catch (Exception ex)
+ {
+ LogLog.Warn("AdoNetAppender: Exception while disposing cached connection object", ex);
+ }
m_dbConnection = null;
}
}
@@ -607,6 +623,32 @@
{
try
{
+ // Cleanup any existing command or connection
+ if (m_dbCommand != null)
+ {
+ try
+ {
+ m_dbCommand.Dispose();
+ }
+ catch (Exception ex)
+ {
+ LogLog.Warn("AdoNetAppender: Exception while disposing cached command object", ex);
+ }
+ m_dbCommand = null;
+ }
+ if (m_dbConnection != null)
+ {
+ try
+ {
+ m_dbConnection.Close();
+ }
+ catch (Exception ex)
+ {
+ LogLog.Warn("AdoNetAppender: Exception while disposing cached connection object", ex);
+ }
+ m_dbConnection = null;
+ }
+
// Create the connection object
m_dbConnection = (IDbConnection)Activator.CreateInstance(ResolveConnectionType());
@@ -665,6 +707,20 @@
{
try
{
+ // Cleanup any existing command or connection
+ if (m_dbCommand != null)
+ {
+ try
+ {
+ m_dbCommand.Dispose();
+ }
+ catch (Exception ex)
+ {
+ LogLog.Warn("AdoNetAppender: Exception while disposing cached command object", ex);
+ }
+ m_dbCommand = null;
+ }
+
// Create the command object
m_dbCommand = m_dbConnection.CreateCommand();