|
From: NHibernate J. <mik...@us...> - 2006-12-05 08:47:30
|
1.0.x generates CreateTypeBuilder exception
-------------------------------------------
Key: NH-832
URL: http://jira.nhibernate.org/browse/NH-832
Project: NHibernate
Type: Bug
Components: Core
Versions: 1.0
Reporter: tgoffice
Priority: Critical
Originally posted by Pawel Pabich (http://forum.hibernate.org/viewtopic.php?t=952999&start=15&postdays=0&postorder=asc&highlight=)
.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,)
{
AssertNotNull(newMessage);
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 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
|