diff --git a/mcs/class/corlib/System.Resources/ChangeLog b/mcs/class/corlib/System.Resources/ChangeLog index 85b7b82e143f6..41050c3fb0d68 100644 --- a/mcs/class/corlib/System.Resources/ChangeLog +++ b/mcs/class/corlib/System.Resources/ChangeLog @@ -1,3 +1,8 @@ +2009-03-06 Gonzalo Paniagua Javier + + * ResourceSet.cs: for custom resource sets without a reader, pretende + that's we've already read the stream. + 2009-02-27 Gonzalo Paniagua Javier * ResourceSet.cs: populating the resource should be locked because the diff --git a/mcs/class/corlib/System.Resources/ResourceSet.cs b/mcs/class/corlib/System.Resources/ResourceSet.cs index ceb3c2036808d..9ad0aea13b10c 100644 --- a/mcs/class/corlib/System.Resources/ResourceSet.cs +++ b/mcs/class/corlib/System.Resources/ResourceSet.cs @@ -63,6 +63,7 @@ public class ResourceSet : IDisposable protected ResourceSet () { Table = new Hashtable (); + resources_read = true; } public ResourceSet (IResourceReader reader) @@ -211,15 +212,15 @@ public virtual string GetString (string name, bool ignoreCase) protected virtual void ReadResources () { + if (resources_read) + return; + if (Reader == null) #if NET_2_0 throw new ObjectDisposedException ("ResourceSet is closed."); #else throw new InvalidOperationException ("ResourceSet is closed."); #endif - if (resources_read) - return; - lock (Table) { if (resources_read) return;