From: NHibernate J. <mik...@us...> - 2006-10-27 09:17:28
|
[ http://jira.nhibernate.org/browse/NH-782?page=all ] Sergey Koshcheyev updated NH-782: --------------------------------- Priority: Major (was: Blocker) Waiting for a new release of DynamicProxy to fix this. > 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 > > .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 |