From: <fab...@us...> - 2008-11-25 22:00:05
|
Revision: 3927 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3927&view=rev Author: fabiomaulo Date: 2008-11-25 21:46:24 +0000 (Tue, 25 Nov 2008) Log Message: ----------- Fix NH-1587 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Tuple/Entity/AbstractEntityTuplizer.cs trunk/nhibernate/src/NHibernate/Tuple/Entity/DynamicMapEntityTuplizer.cs trunk/nhibernate/src/NHibernate/Tuple/Entity/PocoEntityTuplizer.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs Modified: trunk/nhibernate/src/NHibernate/Tuple/Entity/AbstractEntityTuplizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/Entity/AbstractEntityTuplizer.cs 2008-11-25 21:31:27 UTC (rev 3926) +++ trunk/nhibernate/src/NHibernate/Tuple/Entity/AbstractEntityTuplizer.cs 2008-11-25 21:46:24 UTC (rev 3927) @@ -23,7 +23,7 @@ protected internal IGetter[] getters; protected internal ISetter[] setters; protected internal bool hasCustomAccessors; - private readonly IInstantiator instantiator; + protected IInstantiator instantiator; private readonly IProxyFactory proxyFactory; private readonly IAbstractComponentType identifierMapperType; @@ -67,7 +67,8 @@ } hasCustomAccessors = foundCustomAccessor; - instantiator = BuildInstantiator(mappingInfo); + //NH-1587 + //instantiator = BuildInstantiator(mappingInfo); if (entityMetamodel.IsLazy) { Modified: trunk/nhibernate/src/NHibernate/Tuple/Entity/DynamicMapEntityTuplizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/Entity/DynamicMapEntityTuplizer.cs 2008-11-25 21:31:27 UTC (rev 3926) +++ trunk/nhibernate/src/NHibernate/Tuple/Entity/DynamicMapEntityTuplizer.cs 2008-11-25 21:46:24 UTC (rev 3927) @@ -14,7 +14,11 @@ private static readonly ILog log = LogManager.GetLogger(typeof(PocoEntityTuplizer)); internal DynamicMapEntityTuplizer(EntityMetamodel entityMetamodel, PersistentClass mappingInfo) - : base(entityMetamodel, mappingInfo) {} + : base(entityMetamodel, mappingInfo) + { + // NH different behavior fo NH-1587 + instantiator = BuildInstantiator(mappingInfo); + } public override System.Type ConcreteProxyClass { Modified: trunk/nhibernate/src/NHibernate/Tuple/Entity/PocoEntityTuplizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/Entity/PocoEntityTuplizer.cs 2008-11-25 21:31:27 UTC (rev 3926) +++ trunk/nhibernate/src/NHibernate/Tuple/Entity/PocoEntityTuplizer.cs 2008-11-25 21:46:24 UTC (rev 3927) @@ -40,13 +40,16 @@ lazyPropertyNames.Add(property.Name); } - if (hasCustomAccessors || !Cfg.Environment.UseReflectionOptimizer) + if (Cfg.Environment.UseReflectionOptimizer) { - optimizer = null; + // NH different behavior fo NH-1587 + optimizer = Cfg.Environment.BytecodeProvider.GetReflectionOptimizer(mappedClass, getters, setters); } - else + instantiator = BuildInstantiator(mappedEntity); + + if (hasCustomAccessors) { - optimizer = Cfg.Environment.BytecodeProvider.GetReflectionOptimizer(mappedClass, getters, setters); + optimizer = null; } proxyValidator = Cfg.Environment.BytecodeProvider.ProxyFactoryFactory.ProxyValidator; @@ -81,10 +84,12 @@ { if (optimizer == null) { + log.Debug("Create Instantiator without optimizer for:" + persistentClass.MappedClass.FullName); return new PocoInstantiator(persistentClass, null); } else { + log.Debug("Create Instantiator using optimizer for:" + persistentClass.MappedClass.FullName); return new PocoInstantiator(persistentClass, optimizer.InstantiationOptimizer); } } Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs 2008-11-25 21:31:27 UTC (rev 3926) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs 2008-11-25 21:46:24 UTC (rev 3927) @@ -8,7 +8,7 @@ [TestFixture] public class Fixture { - [Test, Ignore("Not fixed yet")] + [Test] public void Bug() { XmlConfigurator.Configure(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |