From: NHibernate J. <mik...@us...> - 2006-10-27 09:10:28
|
Creating a proxy instance failed --------------------------------- Key: NH-782 URL: http://jira.nhibernate.org/browse/NH-782 Project: NHibernate Type: Bug Components: Core Versions: 1.2.0.Beta1 Reporter: Pawel Pabich Priority: Blocker .NET farmework 2.0 MS Sql Server 2005 This issues is described on the forum: http://forum.hibernate.org/viewtopic.php?t=952999&postdays=0&postorder=asc&start=15 That's how I create my session factory: static DataStore() { sessionFactory = new Configuration().Configure().BuildSessionFactory(); } That's how I create and use my session object public void UpdateX(X newX,) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction transaction = session.BeginTransaction(IsolationLevel.RepeatableRead)) { // some statements transaction.Commit(); } } } Now when I call UpdateX using two concurrent threads(they use the same session factory but different sessions) I'm getting this error: NHibernate.HibernateException: Creating a proxy instance failed ---> System.ArgumentException: Duplicate type name within an assembly. at System.Reflection.Emit.AssemblyBuilderData.CheckTypeNameConflict(String strTypeName, TypeBuilder enclosingType) at System.Reflection.Emit.TypeBuilder.Init(String fullname, TypeAttributes attr, Type parent, Type[] interfaces, Module module, PackingSize iPackingSize, Int32 iTypeSize, TypeBuilder enclosingType) at System.Reflection.Emit.ModuleBuilder.DefineTypeNoLock(String name, TypeAttributes attr, Type parent, Type[] interfaces) at System.Reflection.Emit.ModuleBuilder.DefineType(String name, TypeAttributes attr, Type parent, Type[] interfaces) at Castle.DynamicProxy.Builder.CodeBuilder.EasyType..ctor(ModuleScope modulescope, String name, Type baseType, Type[] interfaces, Boolean serializable) at Castle.DynamicProxy.Builder.CodeGenerators.BaseCodeGenerator.CreateTypeBuilder(String typeName, Type baseType, Type[] interfaces) at Castle.DynamicProxy.Builder.CodeGenerators.ClassProxyGenerator.GenerateCode(Type baseClass, Type[] interfaces) at Castle.DynamicProxy.Builder.DefaultProxyBuilder.CreateClassProxy(Type theClass, Type[] interfaces) at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type baseClass, Type[] interfaces, IInterceptor interceptor, Boolean checkAbstract, Object[] argumentsForConstructor) at NHibernate.Proxy.CastleProxyFactory.GetProxy(Object id, ISessionImplementor session) --- End of inner exception stack trace --- at NHibernate.Proxy.CastleProxyFactory.GetProxy(Object id, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.CreateProxy(Object id, ISessionImplementor session) at NHibernate.Impl.SessionImpl.DoLoadByClass(Type clazz, Object id, Boolean checkDeleted, Boolean allowProxyCreation) at NHibernate.Impl.SessionImpl.InternalLoad(Type clazz, Object id, Boolean isNullable) at NHibernate.Type.EntityType.ResolveIdentifier(Object id, ISessionImplementor session) at NHibernate.Type.EntityType.ResolveIdentifier(Object id, ISessionImplementor session, Object owner) at NHibernate.Impl.SessionImpl.InitializeEntity(Object obj) at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session) at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) at NHibernate.Loader.Criteria.CriteriaLoader.List(ISessionImplementor session) at NHibernate.Impl.SessionImpl.Find(CriteriaImpl criteria, IList results) at NHibernate.Impl.SessionImpl.Find(CriteriaImpl criteria) at NHibernate.Impl.CriteriaImpl.List() at NHibernate.Impl.CriteriaImpl.UniqueResult() at FullTilt.Tools.Services.ScheduledMessage.FTP.PersistentStorage.DataStore.GetScheduledMessageByMessageIndexInternal(Int64 messageIndex, Boolean fetchRelatedObjects, ISession session) in C:\Work\Code\FullTilt\Tools_TableSpam\Services\ScheduledMessage\ScheduledMessage.FTP\PersistentStorage\DataStore.cs:line 289 at FullTilt.Tools.Services.ScheduledMessage.FTP.PersistentStorage.DataStore.DeleteScheduledMessageByMessageIndexInternal(Int64 messageIndex, ISession session) in C:\Work\Code\FullTilt\Tools_TableSpam\Services\ScheduledMessage\ScheduledMessage.FTP\PersistentStorage\DataStore.cs:line 259 at FullTilt.Tools.Services.ScheduledMessage.FTP.PersistentStorage.DataStore.UpdateScheduledMessage(ScheduledMessageEntity newMessage, Int32 timeSpan) in C:\Work\Code\FullTilt\Tools_TableSpam\Services\ScheduledMessage\ScheduledMessage.FTP\PersistentStorage\DataStore.cs:line 219 at TestConsoleApplication.Program.Update(Object obj) in C:\Work\Code\FullTilt\Tools_TableSpam\Services\ScheduledMessage\ScheduledMessage.FTP\TestConsoleApplication\Program.cs:line 219 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |