From: <fab...@us...> - 2009-10-27 03:47:41
|
Revision: 4804 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4804&view=rev Author: fabiomaulo Date: 2009-10-27 03:47:26 +0000 (Tue, 27 Oct 2009) Log Message: ----------- Merge r4803 (fix NH-1997) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Exceptions/ADOExceptionHelper.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs Modified: trunk/nhibernate/src/NHibernate/Exceptions/ADOExceptionHelper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Exceptions/ADOExceptionHelper.cs 2009-10-26 23:58:32 UTC (rev 4803) +++ trunk/nhibernate/src/NHibernate/Exceptions/ADOExceptionHelper.cs 2009-10-27 03:47:26 UTC (rev 4804) @@ -36,7 +36,9 @@ public static Exception Convert(ISQLExceptionConverter converter, Exception sqlException, string message, SqlString sql) { - return Convert(converter, new AdoExceptionContextInfo {SqlException = sqlException, Message = message, Sql = sql.ToString()}); + return Convert(converter, + new AdoExceptionContextInfo + {SqlException = sqlException, Message = message, Sql = sql != null ? sql.ToString() : null}); } /// <summary> @@ -57,9 +59,9 @@ object[] parameterValues, IDictionary<string, TypedValue> namedParameters) { sql = TryGetActualSqlQuery(sqle, sql); - string extendMessage = ExtendMessage(message, sql.ToString(), parameterValues, namedParameters); + string extendMessage = ExtendMessage(message, sql != null ? sql.ToString() : null, parameterValues, namedParameters); ADOExceptionReporter.LogExceptions(sqle, extendMessage); - return new ADOException(extendMessage, sqle, sql.ToString()); + return new ADOException(extendMessage, sqle, sql != null ? sql.ToString() : SQLNotAvailable); } /// <summary> For the given <see cref="Exception"/>, locates the <see cref="System.Data.Common.DbException"/>. </summary> @@ -81,7 +83,7 @@ IDictionary<string, TypedValue> namedParameters) { var sb = new StringBuilder(); - sb.Append(message).Append(Environment.NewLine).Append("[ ").Append(sql).Append(" ]"); + sb.Append(message).Append(Environment.NewLine).Append("[ ").Append(sql ?? SQLNotAvailable).Append(" ]"); if (parameterValues != null && parameterValues.Length > 0) { sb.Append(Environment.NewLine).Append("Positional parameters: "); Added: trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/NullQueryTest.cs 2009-10-27 03:47:26 UTC (rev 4804) @@ -0,0 +1,46 @@ +using System; +using System.Collections; +using System.Data; +using NHibernate.Exceptions; +using NUnit.Framework; + +namespace NHibernate.Test.ExceptionsTest +{ + /// <summary> + /// NH-1997 + /// </summary> + [TestFixture] + public class NullQueryTest : TestCase + { + #region Overrides of TestCase + + protected override IList Mappings + { + get { return new string[0]; } + } + + #endregion + [Test] + public void BadGrammar() + { + ISession session = OpenSession(); + IDbConnection connection = session.Connection; + try + { + IDbCommand ps = connection.CreateCommand(); + ps.CommandType = CommandType.Text; + ps.CommandText = "whatever"; + ps.ExecuteNonQuery(); + } + catch (Exception sqle) + { + Assert.DoesNotThrow( + () => ADOExceptionHelper.Convert(sessions.SQLExceptionConverter, sqle, "could not get or update next value", null)); + } + finally + { + session.Close(); + } + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-26 23:58:32 UTC (rev 4803) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-10-27 03:47:26 UTC (rev 4804) @@ -169,6 +169,7 @@ <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> <Compile Include="EngineTest\NativeSQLQueryScalarReturnTest.cs" /> <Compile Include="EngineTest\NativeSQLQuerySpecificationTest.cs" /> + <Compile Include="ExceptionsTest\NullQueryTest.cs" /> <Compile Include="ExpressionTest\RestrictionsFixture.cs" /> <Compile Include="Criteria\Student.cs" /> <Compile Include="Criteria\StudentDTO.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |