Author: gbayon
Date: Tue Mar 6 14:23:03 2007
New Revision: 515322
URL: http://svn.apache.org/viewvc?view=rev&rev=515322
Log:
Fixed IBATISNET-214 Conflict on session access with multiple DAO contexts as
reported by Shane Boyer
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/SessionStore/SessionStoreFactory .cs
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
URL:
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs?view=diff&rev=515322&r1=515321&r2=515322
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
Tue Mar 6 14:23:03 2007
@@ -67,6 +67,12 @@
Assert.IsNotNull(daoManager2);
Assert.IsTrue(daoManager2.LocalDataSource.ConnectionString !=
daoManager1.LocalDataSource.ConnectionString);
Assert.IsTrue(daoManager2.LocalDataSource.DbProvider.Name !=
daoManager1.LocalDataSource.DbProvider.Name);
+
+ daoManager1.OpenConnection();
+ daoManager2.OpenConnection();
+
+ daoManager1.CloseConnection();
+ daoManager2.CloseConnection();
}
#region Dao statement tests
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
URL:
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs?view=diff&rev=515322&r1=515321&r2=515322
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration/DomDaoManagerBuilder.cs
Tue Mar 6 14:23:03 2007
@@ -478,11 +478,8 @@
#region Configure a new DaoManager
- daoManager = DaoManager.NewInstance();
-
- // name
attribute = contextNode.Attributes["id"];
- daoManager.Id = attribute.Value;
+ daoManager = DaoManager.NewInstance(attribute.Value);
configurationScope.ErrorContext.Activity += daoManager.Id;
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs
URL:
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs?view=diff&rev=515322&r1=515321&r2=515322
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs Tue Mar 6
14:23:03 2007
@@ -227,9 +227,10 @@
/// Make the default constructor private to prevent
/// instances from being created.
/// </summary>
- private DaoManager()
+ private DaoManager(string id)
{
- _sessionStore = SessionStoreFactory.GetSessionStore(this.Id);
+ Id = id;
+ _sessionStore = SessionStoreFactory.GetSessionStore(id);
}
#endregion
@@ -321,9 +322,9 @@
/// Create anew instance of a DaoManager
/// </summary>
/// <returns>A DaoManager.</returns>
- internal static DaoManager NewInstance()
+ internal static DaoManager NewInstance(string id)
{
- return new DaoManager();
+ return new DaoManager(id);
}
/// <summary>
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/SessionStore/SessionStoreFactory .cs
URL:
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/SessionStore/SessionStoreFactory%20.cs?view=diff&rev=515322&r1=515321&r2=515322
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/SessionStore/SessionStoreFactory
.cs (original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/SessionStore/SessionStoreFactory
.cs Tue Mar 6 14:23:03 2007
@@ -24,9 +24,6 @@
#endregion
-using System;
-using System.Web;
-
namespace IBatisNet.DataAccess.SessionStore
{
/// <summary>
@@ -36,7 +33,7 @@
/// When running in the context of a windows application the session
object is
/// stored via CallContext.
/// </summary>
- public class SessionStoreFactory
+ public sealed class SessionStoreFactory
{
/// <summary>