I've been using NHibernate 0.9.1 since its release. I skipped version 1.0.0 because of a few bugs it introduced, at least one of which has been fixed in 1.0.1, which is great. Thanks guys.
However, a bug that seems to have been introduced in 1.0.0 has apparently made it through to 1.0.1, but I don't understand it well enough to file a JIRA issue about it, IMO. Can someone please look at this exception stack trace and tell me what you make of it, please? It looks like Castle.DynamicProxy is emitting an assembly at runtime and getting it wrong. It's an intermittent bug, unfortunately. But it does seem to happen more when the web app is just started.
Exception Type System.ArgumentException
Message Duplicate type name within an assembly.
Source mscorlib
TargetSite Void CheckTypeNameConflict(System.String, System.Reflection.Emit.TypeBuilder)
StackTrace 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.CodeGenerators.BaseCodeGenerator.CreateTypeBuilder(String typeName, Type baseType, Type[] inte
Exception Type NHibernate.HibernateException
Message Creating a proxy instance failed
Source NHibernate
TargetSite NHibernate.Proxy.INHibernateProxy GetProxy(System.Object, NHibernate.Engine.ISessionImplementor)
StackTrace at NHibernate.Proxy.CastleProxyFactory.GetProxy(Object id, ISessionImplementor session)
at NHibernate.Persister.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)
at NHibernate.Type.ManyToOneType.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.Initia meters&n bsp;queryParameters)
at NHibernate.Impl.SessionImpl.Find(String query, QueryParameters parameters)[/i]
|