Hi Peter

Have you found the cause of this issue?
I've updated to latest and seems to be that I've hit same problem...

Anybody, some hints/directions where to search?

Valeriu

On Mar 8, 6:07 pm, Peter Hageus <peter.hag...@gmail.com> wrote:
> I've recreated the problem with nested components that was previously
> posted on this list. When integrating NHibernate Validator it throws a
> NullReferenceException:
>
> System.NullReferenceException: Object reference not set to an instance
> of an object.
> at
> NHibernate.Validator.Event.ValidatePreInsertEventListener.SubElementsInspec­tor.AddSubElement(Property
> property, ValidatableElement element)
> at
> NHibernate.Validator.Event.ValidatePreInsertEventListener.SubElementsInspec­tor.AddSubElement(Property
> property, ValidatableElement element)
> at
> NHibernate.Validator.Event.ValidatePreInsertEventListener.SubElementsInspec­tor.Inspect(ValidatableElement
> element)
> at NHibernate.Validator.Engine.ValidatorEngine.AddValidator(Type
> entityType, IValidatableSubElementsInspector inspector)
> at
> NHibernate.Validator.Event.ValidatePreInsertEventListener.Initialize(Config­uration
> cfg)
> at NHibernate.Event.EventListeners.InitializeListeners(Configuration
> cfg, Object[] list)
> at NHibernate.Event.EventListeners.InitializeListeners(Configuration
> cfg)
> at NHibernate.Cfg.Configuration.GetInitializedEventListeners()
> at NHibernate.Cfg.Configuration.BuildSessionFactory()
> at
> Debify.Hospitality.Infrastructure.Test.NHibernateTests.Validation.NestedCom­ponentsTest.TestValidationWithNestedComponent()
> in NestedComponentsTest.cs: line 26
>
> My test (quite lengthy):
>
> using System;
> using Decta.Common.Data;
> using FluentNHibernate.Cfg;
> using FluentNHibernate.Cfg.Db;
> using FluentNHibernate.Conventions.Helpers;
> using FluentNHibernate.Mapping;
> using NHibernate;
> using NHibernate.Cfg;
> using NHibernate.Tool.hbm2ddl;
> using NHibernate.Validator.Cfg;
> using NHibernate.Validator.Cfg.Loquacious;
> using NHibernate.Validator.Engine;
> using NHibernate.Validator.Exceptions;
> using NUnit.Framework;
>
> namespace
> Debify.Hospitality.Infrastructure.Test.NHibernateTests.Validation
> {
>     [TestFixture]
>     public class NestedComponentsTest
>     {
>         [Test]
>         [ExpectedException(typeof(InvalidStateException))]
>         public void TestValidationWithNestedComponent()
>         {
>             Configuration config = GetConfig(true);
>             ISessionFactory factory = config.BuildSessionFactory();
>
>             using (var session = factory.OpenSession())
>             {
>
>                 new SchemaExport(config).Execute(true, true, false,
> session.Connection, Console.Out);
>
>                 session.Save(new EntityWithComponent() { Name =
> "ABCDEF" });
>                 session.Save(new EntityWithComponent() { Name =
> "123456789012345678901234567890" });
>
>                 session.Flush();
>             }
>         }
>
>         [Test]
>         [ExpectedException(typeof(InvalidStateException))]
>         public void TestValidationWithoutNestedComponent()
>         {
>             Configuration config = GetConfig(false);
>             ISessionFactory factory = config.BuildSessionFactory();
>
>             using (var session = factory.OpenSession())
>             {
>
>                 new SchemaExport(config).Execute(true, true, false,
> session.Connection, Console.Out);
>
>                 session.Save(new EntityWithoutComponent() { Name =
> "ABCDEF" });
>                 session.Save(new EntityWithoutComponent() { Name =
> "123456789012345678901234567890" });
>
>                 session.Flush();
>             }
>         }
>
>         private static Configuration GetConfig(bool
> withNestedComponent)
>         {
>             return Fluently.Configure()
>                 .Database(new SQLiteConfiguration()
>                               .InMemory()
>                               .ShowSql())
>                 .Mappings(m =>
>                           m.FluentMappings
>                               .Add(withNestedComponent ?
> typeof(EntityWithComponentMap) : typeof (EntityWithoutComponentMap))
>                               .Conventions.Add(DefaultLazy.Never()))
>
>                 .ExposeConfiguration(c => ValidationConfiguration(c,
> withNestedComponent))
>                 .BuildConfiguration();
>         }
>
>         private static void ValidationConfiguration(Configuration
> nhconfig, bool withNestedComponent)
>         {
>
>             var configure = new
> global::NHibernate.Validator.Cfg.Loquacious.FluentConfiguration();
>
>             if (withNestedComponent)
>                 configure.Register(new
> EntityWithComponentValididate());
>             else
>                 configure.Register(new
> EntityWithoutComponentValididate());
>
>             configure
>                 .SetDefaultValidatorMode(ValidatorMode.UseExternal)
>                 .IntegrateWithNHibernate
>                 .ApplyingDDLConstraints()
>                 .And
>                 .RegisteringListeners();
>
>             var validatorEngine = new ValidatorEngine();
>             validatorEngine.Configure(configure);
>
>             ValidatorInitializer.Initialize(nhconfig,
> validatorEngine);
>
> global::NHibernate.Validator.Cfg.Environment.SharedEngineProvider =
> new SharedValidatorEngineProvider(validatorEngine);
>
>         }
>     }
>
>     public class EntityWithoutComponent
>     {
>
>         private int _id = 0;
>
>         public int Id
>         {
>             get { return _id; }
>             set { _id = value; }
>         }
>
>         private string _name;
>
>         public virtual string Name
>         {
>             get { return _name; }
>             set { _name = value; }
>         }
>     }
>
>     public class EntityWithComponent
>     {
>
>         private int _id = 0;
>
>         public int Id
>         {
>             get { return _id; }
>             set { _id = value; }
>         }
>
>         private string _name;
>
>         public virtual string Name
>         {
>             get { return _name; }
>             set { _name = value; }
>         }
>
>         private Component _component = new Component();
>
>         public Component Component
>         {
>             get { return _component; }
>             set { _component = value; }
>         }
>
>     }
>
>     public class Component
>     {
>         private int _value = 0;
>
>         public int Value
>         {
>             get { return _value; }
>             set { _value = value; }
>         }
>
>         public NestedComponent NestedComponent
>         {
>             get { return _nestedComponent; }
>             set { _nestedComponent = value; }
>         }
>
>         private NestedComponent _nestedComponent = new
> NestedComponent();
>     }
>
>     public class NestedComponent
>     {
>         private string _description = String.Empty;
>
>         public string Description
>         {
>             get { return _description; }
>             set { _description = value; }
>         }
>     }
>
>     public class EntityWithComponentMap :
> ClassMap<EntityWithComponent>
>     {
>         public EntityWithComponentMap()
>         {
>             Id(a => a.Id);
>             Map(a => a.Name);
>
>             Component(a => a.Component, m =>
>                                             {
>                                                 m.Map(c => c.Value);
>                                                 m.Component(c =>
> c.NestedComponent, m2 =>
>
> {
>
> m2.Map(n => n.Description);
>                                                                               
>           });
>                                             });
>
>         }
>     }
>
>     public class EntityWithoutComponentMap :
> ClassMap<EntityWithoutComponent>
>     {
>         public EntityWithoutComponentMap()
>         {
>             Id(a => a.Id);
>             Map(a => a.Name);
>
>         }
>     }
>
>     public class EntityWithComponentValididate :
> ValidationDef<EntityWithComponent>
>     {
>         public EntityWithComponentValididate()
>         {
>             Define(a => a.Name).LengthBetween(2, 10);
>         }
>     }
>
>     public class EntityWithoutComponentValididate :
> ValidationDef<EntityWithoutComponent>
>     {
>         public EntityWithoutComponentValididate()
>         {
>             Define(a => a.Name).LengthBetween(2, 10);
>         }
>     }
>
>
>
> }

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibern...@googlegroups.com.
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to