From: <dav...@us...> - 2009-07-26 15:43:22
|
Revision: 4659 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4659&view=rev Author: davybrion Date: 2009-07-26 15:43:11 +0000 (Sun, 26 Jul 2009) Log Message: ----------- applying patch from 'Dima' to fix NH1899 Modified Paths: -------------- branches/2.1.x/nhibernate/src/NHibernate/Type/GenericMapType.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/DomainClass.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/Mappings.hbm.xml branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/SampleTest.cs Modified: branches/2.1.x/nhibernate/src/NHibernate/Type/GenericMapType.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Type/GenericMapType.cs 2009-07-26 15:24:33 UTC (rev 4658) +++ branches/2.1.x/nhibernate/src/NHibernate/Type/GenericMapType.cs 2009-07-26 15:43:11 UTC (rev 4659) @@ -71,7 +71,7 @@ IDictionary<TKey, TValue> result = (IDictionary<TKey, TValue>)target; result.Clear(); - IEnumerable iter = (IDictionary)original; + IEnumerable<KeyValuePair<TKey, TValue>> iter = (IDictionary<TKey, TValue>)original; foreach (KeyValuePair<TKey, TValue> me in iter) { TKey key = (TKey)cp.IndexType.Replace(me.Key, null, session, owner, copyCache); Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/DomainClass.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/DomainClass.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/DomainClass.cs 2009-07-26 15:43:11 UTC (rev 4659) @@ -0,0 +1,33 @@ + + +using System.Collections; +using System.Collections.Generic; +namespace NHibernate.Test.NHSpecificTest.NH1899 +{ + public class Parent + { + private int id; + private IDictionary<Key, Value> _relations; + + public int Id + { + get { return id; } + set { id = value; } + } + + public IDictionary<Key, Value> Relations { + get { return _relations; } + set { _relations = value; } + } + } + + public enum Key { + One, + Two + } + + public enum Value { + ValOne, + ValTwo + } +} \ No newline at end of file Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/Mappings.hbm.xml =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/Mappings.hbm.xml (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/Mappings.hbm.xml 2009-07-26 15:43:11 UTC (rev 4659) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1899" default-access="field.camelcase" + default-lazy="false"> + <class name="Parent"> + <id name="Id"> + <generator class="assigned" /> + </id> + <map name="_relations" table="RelationsTable" lazy="false" cascade="all-delete-orphan"> + <key column="ParentID" /> + <index column="KeyId" type="NHibernate.Test.NHSpecificTest.NH1899.Key, NHibernate.Test" /> + <element column="Value" type="NHibernate.Test.NHSpecificTest.NH1899.Value, NHibernate.Test" /> + </map> + </class> +</hibernate-mapping> \ No newline at end of file Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/SampleTest.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/SampleTest.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1899/SampleTest.cs 2009-07-26 15:43:11 UTC (rev 4659) @@ -0,0 +1,55 @@ +using System.Collections.Generic; + +using NHibernate.Dialect; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1899 +{ + [TestFixture] + public class SampleTest : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession session = OpenSession()) + { + Parent entity = new Parent(); + entity.Id = 1; + entity.Relations = new Dictionary<Key, Value>(); + entity.Relations.Add(Key.One, Value.ValOne); + entity.Relations.Add(Key.Two, Value.ValTwo); + session.Save(entity); + session.Flush(); + } + } + + protected override void OnTearDown() + { + base.OnTearDown(); + using (ISession session = OpenSession()) + { + string hql = "from System.Object"; + session.Delete(hql); + session.Flush(); + } + } + + [Test] + public void ShouldNotThrowOnSaveUpdateCopy() + { + Parent entity; + + using (ISession session = OpenSession()) + { + entity = session.Get<Parent>(1); + session.Close(); + session.Dispose(); + } + + using (ISession session2 = OpenSession()) + { + entity = (Parent)session2.SaveOrUpdateCopy(entity); + } + } + } +} Modified: branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-07-26 15:24:33 UTC (rev 4658) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-07-26 15:43:11 UTC (rev 4659) @@ -538,6 +538,8 @@ <Compile Include="NHSpecificTest\NH1868\Model.cs" /> <Compile Include="NHSpecificTest\NH1877\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1877\Person.cs" /> + <Compile Include="NHSpecificTest\NH1899\DomainClass.cs" /> + <Compile Include="NHSpecificTest\NH1899\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH473\Child.cs" /> <Compile Include="NHSpecificTest\NH473\Fixture.cs" /> <Compile Include="NHSpecificTest\NH473\Parent.cs" /> @@ -1948,6 +1950,7 @@ <EmbeddedResource Include="Bytecode\Lightweight\ProductLine.hbm.xml" /> <EmbeddedResource Include="DriverTest\MultiTypeEntity.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1899\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1877\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1868\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1849\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |