Skip to content

Commit d762bd6

Browse files
author
Gabriela Martinez
committed
Changes to add IDisposable pattern in Setup.cs and MySql.Data.command.cs
1 parent 307427a commit d762bd6

File tree

7 files changed

+121
-162
lines changed

7 files changed

+121
-162
lines changed

Server50.config

-67
This file was deleted.

Server55.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<add key="rootpassword" value=""/>
1212
<add key="host" value="localhost"/>
1313
<add key="port" value="3305"/>
14-
<add key="pipename" value="MYSQL55"/>
15-
<add key="memory_name" value="MYSQL55"/>
14+
<add key="pipename" value="MySQL55"/>
15+
<add key="memory_name" value="MySQL55"/>
1616
</appSettings>
1717
<connectionStrings>
1818
<add name="testEntities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=test;uid=root;logging=true;pooling=false;port=3305&quot;"

Server55MT.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<add key="rootpassword" value=""/>
1212
<add key="host" value="localhost"/>
1313
<add key="port" value="3305"/>
14-
<add key="pipename" value="MYSQL55"/>
15-
<add key="memory_name" value="MYSQL55"/>
14+
<add key="pipename" value="MySQL55"/>
15+
<add key="memory_name" value="MySQL55"/>
1616
</appSettings>
1717
<connectionStrings>
1818
<add name="testEntities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=test;uid=root;logging=true;pooling=false;port=3305&quot;"

Server56.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<add key="rootpassword" value=""/>
1212
<add key="host" value="localhost"/>
1313
<add key="port" value="3305"/>
14-
<add key="pipename" value="MYSQL56"/>
15-
<add key="memory_name" value="MYSQL56"/>
14+
<add key="pipename" value="MySQL56"/>
15+
<add key="memory_name" value="MySQL56"/>
1616
</appSettings>
1717
<connectionStrings>
1818
<add name="testEntities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=test;uid=root;logging=true;pooling=false;port=3305&quot;"
+67-66
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,68 @@
1-
<?xml version="1.0" encoding="utf-8" ?>
2-
<configuration>
3-
<system.data>
4-
<DbProviderFactories>
5-
<clear />
6-
<add name="MySql" invariant="MySql.Data.MySqlClient" description="boo" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
7-
</DbProviderFactories>
8-
</system.data>
9-
<appSettings>
10-
<add key="rootuser" value="root"/>
11-
<add key="rootpassword" value=""/>
12-
<add key="host" value="localhost"/>
13-
<add key="port" value="3305"/>
14-
<add key="pipename" value="MYSQL51"/>
15-
<add key="memory_name" value="MYSQL51"/>
16-
</appSettings>
17-
<connectionStrings>
18-
<add name="testEntities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=test;uid=root;logging=true;pooling=false;port=3305&quot;"
19-
providerName="System.Data.EntityClient" />
20-
<add name="Model1Container" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=modeldb;uid=test;password=test;pooling=false;port=3305&quot;"
21-
providerName="System.Data.EntityClient" />
22-
<add name="model2Entities" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;user id=root;database=test;pooling=false;port=3305&quot;"
23-
providerName="System.Data.EntityClient" />
24-
<add name="testEntities1" connectionString="metadata=res://*/Model3.csdl|res://*/Model3.ssdl|res://*/Model3.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;database=test;port=3305&quot;" providerName="System.Data.EntityClient" />
25-
<add name="mybooksEntities" connectionString="metadata=res://*/BooksModel.csdl|res://*/BooksModel.ssdl|res://*/BooksModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=Localhost;User Id=root;database=test;port=3305&quot;"
26-
providerName="System.Data.EntityClient" />
27-
<add name="ModelFirstModel1Container" connectionString="metadata=res://*/ModelFirstModel1.csdl|res://*/ModelFirstModel1.ssdl|res://*/ModelFirstModel1.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=Localhost;User Id=root;database=test;port=3305&quot;" providerName="System.Data.EntityClient" />
28-
<add name="datesTypesEntities" connectionString="metadata=res://*/DatesTypesModel.csdl|res://*/DatesTypesModel.ssdl|res://*/DatesTypesModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;database= test_types;3305&quot;" providerName="System.Data.EntityClient" />
29-
<add name="BlogContext" connectionString="server=localhost;User Id=root;database=test;port=3305;" providerName="MySql.Data.MySqlClient" />
30-
</connectionStrings>
31-
<system.web>
32-
<membership defaultProvider="MySQLMembershipProvider">
33-
<providers>
34-
<add connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false"
35-
enablePasswordReset="true" requiresQuestionAndAnswer="true"
36-
applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"
37-
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7"
38-
minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10"
39-
passwordStrengthRegularExpression="" name="MySQLMembershipProvider"
40-
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web" />
41-
</providers>
42-
</membership>
43-
<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
44-
<providers>
45-
<add connectionStringName="LocalMySqlServer" applicationName="/"
46-
name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web" />
47-
</providers>
48-
</roleManager>
49-
<machineKey validationKey="AutoGenerate" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
50-
51-
<profile defaultProvider="MySqlProfileProvider">
52-
<providers>
53-
<clear/>
54-
<add name="MySqlProfileProvider" connectionStringName="LocalMySqlServer"
55-
applicationName="/" type="MySql.Web.Profile.MySQLProfileProvider, mysql.web"/>
56-
</providers>
57-
<properties>
58-
<add name="Name"/>
59-
<add name="FavoriteColors" type="System.Collections.Specialized.StringCollection, system, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" serializeAs="Xml" />
60-
<add name="Weight" type="System.Int32"/>
61-
<add name="BirthDate" type="System.DateTime"/>
62-
<add name="HasDefault" type="System.String" defaultValue="mydefault"/>
63-
<add name="ReadOnly" type="System.Int32" readOnly="true" />
64-
</properties>
65-
</profile>
66-
</system.web>
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<system.data>
4+
<DbProviderFactories>
5+
<clear />
6+
<add name="MySql" invariant="MySql.Data.MySqlClient" description="boo" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
7+
</DbProviderFactories>
8+
</system.data>
9+
<appSettings>
10+
<add key="rootuser" value="root"/>
11+
<add key="rootpassword" value=""/>
12+
<add key="host" value="localhost"/>
13+
<add key="port" value="3305"/>
14+
<add key="pipename" value="MySQL57"/>
15+
<add key="memory_name" value="MySQL57"/>
16+
</appSettings>
17+
<connectionStrings>
18+
<add name="testEntities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=test;uid=root;logging=true;pooling=false;port=3305&quot;"
19+
providerName="System.Data.EntityClient" />
20+
<add name="Model1Container" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;database=modeldb;uid=test;password=test;pooling=false;port=3305&quot;"
21+
providerName="System.Data.EntityClient" />
22+
<add name="model2Entities" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;Data Source=localhost;user id=root;database=test;pooling=false;port=3305&quot;"
23+
providerName="System.Data.EntityClient" />
24+
<add name="testEntities1" connectionString="metadata=res://*/Model3.csdl|res://*/Model3.ssdl|res://*/Model3.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;database=test;port=3305&quot;"
25+
providerName="System.Data.EntityClient" />
26+
<add name="mybooksEntities" connectionString="metadata=res://*/BooksModel.csdl|res://*/BooksModel.ssdl|res://*/BooksModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=Localhost;User Id=root;database=test;port=3305&quot;"
27+
providerName="System.Data.EntityClient" />
28+
<add name="ModelFirstModel1Container" connectionString="metadata=res://*/ModelFirstModel1.csdl|res://*/ModelFirstModel1.ssdl|res://*/ModelFirstModel1.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=Localhost;User Id=root;database=test;port=3305&quot;" providerName="System.Data.EntityClient" />
29+
<add name="datesTypesEntities" connectionString="metadata=res://*/DatesTypesModel.csdl|res://*/DatesTypesModel.ssdl|res://*/DatesTypesModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;database= test_types;port=3305&quot;" providerName="System.Data.EntityClient" />
30+
<add name="BlogContext" connectionString="server=localhost;User Id=root;database=test;port=3305;" providerName="MySql.Data.MySqlClient" />
31+
</connectionStrings>
32+
<system.web>
33+
<membership defaultProvider="MySQLMembershipProvider">
34+
<providers>
35+
<add connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false"
36+
enablePasswordReset="true" requiresQuestionAndAnswer="true"
37+
applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"
38+
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7"
39+
minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10"
40+
passwordStrengthRegularExpression="" name="MySQLMembershipProvider"
41+
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web" />
42+
</providers>
43+
</membership>
44+
<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
45+
<providers>
46+
<add connectionStringName="LocalMySqlServer" applicationName="/"
47+
name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web" />
48+
</providers>
49+
</roleManager>
50+
<machineKey validationKey="AutoGenerate" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
51+
52+
<profile defaultProvider="MySqlProfileProvider">
53+
<providers>
54+
<clear/>
55+
<add name="MySqlProfileProvider" connectionStringName="LocalMySqlServer"
56+
applicationName="/" type="MySql.Web.Profile.MySQLProfileProvider, mysql.web"/>
57+
</providers>
58+
<properties>
59+
<add name="Name"/>
60+
<add name="FavoriteColors" type="System.Collections.Specialized.StringCollection, system, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" serializeAs="Xml" />
61+
<add name="Weight" type="System.Int32"/>
62+
<add name="BirthDate" type="System.DateTime"/>
63+
<add name="HasDefault" type="System.String" defaultValue="mydefault"/>
64+
<add name="ReadOnly" type="System.Int32" readOnly="true" />
65+
</properties>
66+
</profile>
67+
</system.web>
6768
</configuration>

Source/MySql.Data/command.cs

+9
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public sealed partial class MySqlCommand : ICloneable, IDisposable
6464
private int cacheAge;
6565
private bool internallyCreated;
6666
private static List<string> keywords = null;
67+
private bool disposed = false;
6768

6869
/// <include file='docs/mysqlcommand.xml' path='docs/ctor1/*'/>
6970
public MySqlCommand()
@@ -999,10 +1000,18 @@ public void Dispose()
9991000

10001001
protected override void Dispose(bool disposing)
10011002
{
1003+
if (disposed)
1004+
return;
1005+
1006+
if (!disposing)
1007+
return;
1008+
10021009
if (statement != null && statement.IsPrepared)
10031010
statement.CloseStatement();
10041011

10051012
base.Dispose(disposing);
1013+
1014+
disposed = true;
10061015
}
10071016
#else
10081017
public void Dispose()

0 commit comments

Comments
 (0)