From: <fab...@us...> - 2010-09-24 12:18:27
|
Revision: 5213 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5213&view=rev Author: fabiomaulo Date: 2010-09-24 12:18:20 +0000 (Fri, 24 Sep 2010) Log Message: ----------- Fix NH-2096 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs Modified: trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs 2010-09-24 04:51:37 UTC (rev 5212) +++ trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs 2010-09-24 12:18:20 UTC (rev 5213) @@ -83,7 +83,11 @@ { int length = (int)rs.GetBytes(index, 0, null, 0, 0); byte[] buffer = new byte[length]; - rs.GetBytes(index, 0, buffer, 0, length); + if (length > 0) + { + // The "if" is to make happy MySQL NH-2096 + rs.GetBytes(index, 0, buffer, 0, length); + } return ToExternalFormat(buffer); } Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs 2010-09-24 04:51:37 UTC (rev 5212) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/BinaryBlobTypeFixture.cs 2010-09-24 12:18:20 UTC (rev 5213) @@ -1,6 +1,7 @@ using System; using System.Text; using NUnit.Framework; +using SharpTestsEx; namespace NHibernate.Test.TypesTest { @@ -50,5 +51,26 @@ s.Flush(); s.Close(); } + + [Test] + public void ReadWriteZeroLen() + { + object savedId; + using (ISession s = OpenSession()) + { + BinaryBlobClass b = new BinaryBlobClass(); + b.BinaryBlob = new byte[0]; + savedId = s.Save(b); + s.Flush(); + } + + using (var s = OpenSession()) + { + var b = s.Get<BinaryBlobClass>(savedId); + b.BinaryBlob.Should().Not.Be.Null().And.Have.Count.EqualTo(0); + s.Delete(b); + s.Flush(); + } + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |