Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data.NHibernate/Data/NHibernate
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1302
Modified Files:
HibernateTransactionManager.cs
Log Message:
SPRNET-716 Create new session if thread local storage SessionHolder is marked as SyncrhonizedWithTransaction.
SPRNET-717 Add default transaction timeout property on AbstractPlatformTransactionManager
Index: HibernateTransactionManager.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data.NHibernate/Data/NHibernate/HibernateTransactionManager.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** HibernateTransactionManager.cs 29 Aug 2007 03:42:05 -0000 1.3
--- HibernateTransactionManager.cs 30 Aug 2007 19:59:44 -0000 1.4
***************
*** 323,327 ****
HibernateTransactionObject txObject = (HibernateTransactionObject) transaction;
! if (DbProvider != null && TransactionSynchronizationManager.HasResource(DbProvider))
{
throw new IllegalTransactionStateException(
--- 323,328 ----
HibernateTransactionObject txObject = (HibernateTransactionObject) transaction;
! if (DbProvider != null && TransactionSynchronizationManager.HasResource(DbProvider)
! && !txObject.ConnectionHolder.SynchronizedWithTransaction)
{
throw new IllegalTransactionStateException(
***************
*** 335,339 ****
{
! if (txObject.SessionHolder == null)
{
IInterceptor interceptor = EntityInterceptor;
--- 336,340 ----
{
! if (txObject.SessionHolder == null || txObject.SessionHolder.SynchronizedWithTransaction)
{
IInterceptor interceptor = EntityInterceptor;
***************
*** 381,388 ****
// Register transaction timeout.
! if (definition.TransactionTimeout != DefaultTransactionDefinition.TIMEOUT_DEFAULT)
{
! //TODO investigate naming of Deading/TTL...java vs. .net
! txObject.SessionHolder.TimeoutInSeconds = definition.TransactionTimeout;
}
--- 382,389 ----
// Register transaction timeout.
! int timeout = DetermineTimeout(definition);
! if (timeout != DefaultTransactionDefinition.TIMEOUT_DEFAULT)
{
! txObject.SessionHolder.TimeoutInSeconds = timeout;
}
***************
*** 392,396 ****
//investigate passing null for tx.
ConnectionHolder conHolder = new ConnectionHolder(con, adoTx);
! if (definition.TransactionTimeout != DefaultTransactionDefinition.TIMEOUT_DEFAULT)
{
conHolder.TimeoutInMillis = definition.TransactionTimeout;
--- 393,397 ----
//investigate passing null for tx.
ConnectionHolder conHolder = new ConnectionHolder(con, adoTx);
! if (timeout != DefaultTransactionDefinition.TIMEOUT_DEFAULT)
{
conHolder.TimeoutInMillis = definition.TransactionTimeout;
|