|
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.
|