From: <aye...@us...> - 2010-01-27 13:53:51
|
Revision: 4933 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4933&view=rev Author: ayenderahien Date: 2010-01-27 13:53:45 +0000 (Wed, 27 Jan 2010) Log Message: ----------- Adding appropriate alert for non auto prop ghost property Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs Modified: trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs 2010-01-26 23:28:18 UTC (rev 4932) +++ trunk/nhibernate/src/NHibernate/Tuple/Entity/EntityMetamodel.cs 2010-01-27 13:53:45 UTC (rev 4933) @@ -303,7 +303,8 @@ { foreach (var prop in persistentClass.PropertyClosureIterator) { - if (prop.IsLazy == false && prop.UnwrapProxy) + if (prop.IsLazy == false && + prop.UnwrapProxy == false) continue; var getter = prop.GetGetter(persistentClass.MappedClass); Modified: trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2010-01-26 23:28:18 UTC (rev 4932) +++ trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2010-01-27 13:53:45 UTC (rev 4933) @@ -1,6 +1,7 @@ using System.Collections; using NHibernate.ByteCode.Castle; using NHibernate.Cfg; +using NHibernate.Tuple.Entity; using NUnit.Framework; namespace NHibernate.Test.GhostProperty @@ -8,6 +9,8 @@ [TestFixture] public class GhostPropertyFixture : TestCase { + private string log; + protected override string MappingsAssembly { get { return "NHibernate.Test"; } @@ -55,7 +58,22 @@ } } + protected override void BuildSessionFactory() + { + using (var logSpy = new LogSpy(typeof(EntityMetamodel))) + { + base.BuildSessionFactory(); + log = logSpy.GetWholeLog(); + } + } + [Test] + public void ShouldGenerateErrorForNonAutoPropGhostProp() + { + Assert.IsTrue(log.Contains("Lazy or ghost property NHibernate.Test.GhostProperty.Order.Payment is not an auto property, which may result in uninitialized property access")); + } + + [Test] public void CanGetActualValueFromLazyManyToOne() { using (ISession s = OpenSession()) Modified: trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs 2010-01-26 23:28:18 UTC (rev 4932) +++ trunk/nhibernate/src/NHibernate.Test/GhostProperty/Order.cs 2010-01-27 13:53:45 UTC (rev 4933) @@ -3,7 +3,13 @@ public class Order { public virtual int Id { get; set; } - public virtual Payment Payment { get; set; } + private Payment payment; + + public virtual Payment Payment + { + get { return payment; } + set { payment = value; } + } } public abstract class Payment This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |