2008-07-28 Gert Driesen <drieseng@users.sourceforge.net>
- * SqlConnection.cs(ChangeState): Return immediately when new state
+ * SqlConnection.cs: Use null as default value for connectionString
+ field. Remove Init method, as initialization is done in
+ SetDefaultConnectionParameters. Initialize parms in
+ SetDefaultConnectionParameters to avoid calling Reset on newly
+ initialized collection. In Dispose (bool), also invoke base.Dispose if
+ SqlConnection was already disposed. Fixes bug #412571.
+
+2008-07-28 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * SqlConnection.cs (ChangeState): Return immediately when new state
equals original state. Fixes bug #412574. Removed extra whitespace.
2008-07-23 Veerapuram Varadhan <vvaradhan@novell.com>
// Connection parameters
- TdsConnectionParameters parms = new TdsConnectionParameters ();
+ TdsConnectionParameters parms;
bool connectionReset;
bool pooling;
string dataSource;
#region Constructors
- public SqlConnection () : this (String.Empty)
+ public SqlConnection () : this (null)
{
}
public SqlConnection (string connectionString)
{
- Init (connectionString);
- }
-
- private void Init (string connectionString)
- {
- connectionTimeout = DEFAULT_CONNECTIONTIMEOUT;
- dataSource = string.Empty;
- packetSize = DEFAULT_PACKETSIZE;
- port = DEFAULT_PORT;
ConnectionString = connectionString;
}
set {
if (state == ConnectionState.Open)
throw new InvalidOperationException ("Not Allowed to change ConnectionString property while Connection state is OPEN");
- SetConnectionString (value);
+ SetConnectionString (value);
}
}
protected override void Dispose (bool disposing)
{
- if (disposed)
- return;
-
try {
- if (disposing) {
+ if (disposing && !disposed) {
if (State == ConnectionState.Open)
Close ();
- ConnectionString = string.Empty;
+ ConnectionString = null;
}
} finally {
disposed = true;
void SetDefaultConnectionParameters ()
{
- parms.Reset ();
+ if (parms == null)
+ parms = new TdsConnectionParameters ();
+ else
+ parms.Reset ();
dataSource = string.Empty;
connectionTimeout = DEFAULT_CONNECTIONTIMEOUT;
connectionReset = true;
maxPoolSize = DEFAULT_MAXPOOLSIZE;
minPoolSize = DEFAULT_MINPOOLSIZE;
packetSize = DEFAULT_PACKETSIZE;
+ port = DEFAULT_PORT;
#if NET_2_0
async = false;
#endif
+2008-07-28 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * SqlConnectionTest.cs: Enabled and improved test for bug #412571.
+
2008-07-28 Gert Driesen <drieseng@users.sourceforge.net>
* SqlConnectionTest.cs: Enabled test for bug #412574.
[Test] // bug #412571
public void Dispose ()
{
- Assert.Ignore ("bug #412571");
-
StateChangeEventArgs stateChangeArgs;
EventArgs disposedArgs;
- conn = new SqlConnection (connectionString);
+ conn = new SqlConnection (connectionString + ";Connection Timeout=30;Packet Size=512;Workstation Id=Desktop");
conn.Disposed += new EventHandler (Connection_Disposed);
conn.Open ();
conn.StateChange += new StateChangeEventHandler (Connection_StateChange);
Assert.AreEqual (0, events.Count, "#A1");
conn.Dispose ();
- Assert.AreEqual (ConnectionState.Closed, conn.State, "#A2");
- Assert.AreEqual (2, events.Count, "#A3");
+ Assert.AreEqual (string.Empty, conn.ConnectionString, "#A2");
+ Assert.AreEqual (15, conn.ConnectionTimeout, "#A3");
+ Assert.AreEqual (string.Empty, conn.Database, "#A4");
+ Assert.AreEqual (string.Empty, conn.DataSource, "#A5");
+#if NET_2_0
+ Assert.AreEqual (8000, conn.PacketSize, "#A6");
+#else
+ Assert.AreEqual (8192, conn.PacketSize, "#A6");
+#endif
+ Assert.AreEqual (ConnectionState.Closed, conn.State, "#A7");
+ Assert.IsTrue (string.Compare (conn.WorkstationId, Environment.MachineName, true) == 0, "#A8");
+ Assert.AreEqual (2, events.Count, "#A9");
stateChangeArgs = events [0] as StateChangeEventArgs;
Assert.IsNotNull (stateChangeArgs, "#B1");