Hi,
I use NHibernate 1.0.2, MS SQL 2005 and the contrib for the System Cache. The application is a C# Desktop (WinForms) app. I had (still trying to reproduce it) the following exception:
Could not execute HQL query: Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch:NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.StandardPhysical:786@786. Hinzuzufügender Schlüssel: NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.StandardPhysical:786@786.
I translate the important parts: The element is already added. Key in Dictionary:NHibernate-Cache:MyClass:786@786. Added key: the same
I did the following request : "from StandardPhysical" via HSQL. I did that request more than once, so I guess the results where cached in the SystemCache I use.
Any ideas?
Thanks, Rainer.
EDIT: The exception occured again. This time I have the complete StackTrace:
2006-07-15 13:14:58,796 [3252] ERROR NHibernate.AssertionFailure [(null)] <(null)> - An AssertionFailure occured - this may indicate a bug in NHibernate
System.ArgumentException: Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch:NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.TestedParameter:304@304. Hinzuzufügender Schlüssel: NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.TestedParameter:304@304.
bei System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
bei System.Collections.Hashtable.Add(Object key, Object value)
bei NHibernate.Caches.SysCache.SysCache.Put(Object key, Object value)
bei NHibernate.Cache.ReadWriteCache.HandleLockExpiry(Object key)
bei NHibernate.Cache.ReadWriteCache.AfterUpdate(Object key, Object value, Object version, ISoftLock clientLock)
bei NHibernate.Impl.ScheduledUpdate.AfterTransactionCompletion(Boolean success)
bei NHibernate.Impl.SessionImpl.AfterTransactionCompletion(Boolean success)
2006-07-15 13:14:59,015 [3252] ERROR NHibernate.Transaction.AdoTransaction [(null)] <(null)> - Commit failed
NHibernate.AssertionFailure: Exception releasing cache locks ---> System.ArgumentException: Das Element wurde bereits hinzugefügt. Schlüssel im Wörterbuch:NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.TestedParameter:304@304. Hinzuzufügender Schlüssel: NHibernate-Cache:BitConstruct.PatientManager.Model.Entities.TestedParameter:304@304.
bei System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
bei System.Collections.Hashtable.Add(Object key, Object value)
bei NHibernate.Caches.SysCache.SysCache.Put(Object key, Object value)
bei NHibernate.Cache.ReadWriteCache.HandleLockExpiry(Object key)
bei NHibernate.Cache.ReadWriteCache.AfterUpdate(Object key, Object value, Object version, ISoftLock clientLock)
bei NHibernate.Impl.ScheduledUpdate.AfterTransactionCompletion(Boolean success)
bei NHibernate.Impl.SessionImpl.AfterTransactionCompletion(Boolean success)
--- Ende der internen Ausnahmestapelüberwachung ---
bei NHibernate.Impl.SessionImpl.AfterTransactionCompletion(Boolean success)
bei NHibernate.Transaction.AdoTransaction.AfterTransactionCompletion(Boolean successful)
bei NHibernate.Transaction.AdoTransaction.Commit()
|