Use correct exception when a key is not found in ConcurrentDictionary
[mono.git] / mcs / class / corlib / System.Resources / ChangeLog
index 9d9cf18fd8224c1d6fdb8f255e199c1cdb04ffec..870a6a6adfa0c3a1a957647b071b7907f7109c32 100644 (file)
@@ -1,4 +1,508 @@
+2010-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
 
+       4.0 updates.
+
+       * ResourceManager.cs: Mark ResourceSets as obsolete.
+       * ResourceReader.cs: New public Dispose method.
+
+2010-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ResourceWriter.cs: Implement 4.0 TypeNameConverter.
+
+2010-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ResourceWriter.cs: Implement 4.0 AddResource overloads taking a
+       Stream, as well as implement the same support in our AddResource that
+       takes an object too.
+
+2010-03-16  Jb Evain  <jbevain@novell.com>
+
+       * ResourceManager.cs: use MOONLIGHT symbol to disambiguate
+       MonoTouch and Moonlight code.
+
+2010-03-01  Miguel de Icaza  <miguel@novell.com>
+
+       * Win32Resources.cs: Prevent infinite loops if the resource that
+       we are reading is invalid.   Fixes the mscorlib part of #327500
+
+2009-11-01  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ResourceManager.cs (GetResourceFilePath): Don't use 
+       'resourceDir' which should always be null for Moonlight
+
+2009-10-19  Jb Evain  <jbevain@novell.com>
+
+       * ResourceReader.cs: fix the build.
+
+2009-10-18  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ResourceReader.cs, ResourceSet.cs, RuntimeResourceSet.cs: Use 
+       UnmanagedMemoryStream (instead of IntPtrStream)
+
+2009-04-16  Geoff Norton  <gnorton@novell.com>
+
+       * ResourceWriter.cs: The magic internal type here is required to match
+       Microsofts for SL2 resource deserialization.
+
+2009-03-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceSet.cs: for custom resource sets without a reader, pretende
+       that's we've already read the stream.
+
+2009-02-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceSet.cs: populating the resource should be locked because the
+       resourceset could be shared.
+
+2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceManager.cs: don't throw every time we try to load a resource
+       satellite assembly that does not exist.
+
+2008-12-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceManager.cs: cache negative results too.
+
+2008-12-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceManager.cs: avoid duplication of keys if more than one
+       thread is creating the ResourceSet.
+
+2008-12-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+       * ResourceManager.cs: cache ResourceSets instead of loading them from
+       their assembly every time they are needed.
+
+2008-08-11  Larry Ewing  <lewing@novell.com>
+
+       * ResourceReader.cs: fix reading/writing beyond the end of the
+       current resource when the resource is larger than 1024 bytes.
+
+2008-06-30  Marek Safar  <marek.safar@gmail.com>
+
+       * ResourceReader.cs: Cache resources enumerator in ResourceReader.
+
+2008-06-30  Marek Safar  <marek.safar@gmail.com>
+
+       * ResourceReader.cs: Sealed ResourceEnumerator.
+
+2008-06-28  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ResourceReader.cs (LoadResourceValues): Kill ununsed local.
+
+       * ResourceReader.cs (CreateResourceInfo): Don't return a big
+       struct on stack, pass it as a reference argument.
+
+2008-06-27  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ResourceReader.cs: Avoid an extra array copy for the resource arrays.
+
+2008-06-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * ResourceManager.cs: Add a negative cache for culture->resource set mappings
+       which caches lookup failures.
+
+       * ResourceSet.cs (GetObjectInternal): Search the hash table in the ignoreCase
+       case too.
+
+2008-06-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
+
+       * MissingManifestResourceException.cs:
+       * MissingSatelliteAssemblyException.cs:
+       * ResourceManager.cs: Fix parameter names
+
+2008-05-27  Marek Habersack  <mhabersack@novell.com>
+
+       * ResourceReader.cs: reimplement the way resources are read when
+       enumerator is used. The resource indexes and names are read in
+       ReadHeaders when ResourceReader is created and the resource values
+       are read and cached when the enumerator is created. This removed a
+       lot of unnecessary locking and made the whole process more
+       efficient and faster (a test application would acquire the locks
+       40000 times durng a 1.7s run, right now it acquires the lock 1
+       time).
+
+2008-05-08  Miguel de Icaza  <miguel@novell.com>
+
+       * ResourceSet.cs: Pass the ignoreCase argument, needed to
+       implement ResourceManager.IgnoreCase.
+
+       Silverlight 2.0 applications store "page.xaml" as the key in the
+       resource keys, but request Page.xaml ones.
+
+       * ResourceManager.cs: Avoid exception throwing and catching.
+
+       * RutimeResourceSet.cs: Add a constructor that is required to
+       deserialize Silverlight 2.0 applications when deserializing the
+       resources that contains the XAML files in assemblies.
+
+       We do not take advantage of this new constructor that uses an
+       IntPtrStream, instead we stick to the Stream API.
+
+2008-03-29  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * Win32Resources.cs: On 2.0 profile, initiale fixed info to zero-length
+       string when emitting versioninfo in compiler context. Default to
+       neutral language in compiler context. On 1.0 profile, use 0xffff as
+       default value for version parts. In Version, abort on first invalid
+       version part and also set FileVersion string. In ProductVersion and
+       FileVersion, parse version string and abort on first invalid version
+       part.  
+
+2008-03-15  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceManager.cs: Default to RuntimeResourceSet for all ctors.
+       * ResourceSet.cs: Avoid duplicate argument checks. On 2.0 profile,
+       throw ObjectDisposedException when ResourceSet is disposed.
+       * RuntimeResourceSet.cs: On 2.0 profile, throw ObjectDisposedException
+       when ResourceSet is disposed.
+
+2008-03-04  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ResourceManager.cs: Use RuntimeResourceSet, an internal type, just
+       like MS does (and tell us indirectly with a Type property).
+       * ResourceSet.cs: Fix a few problems found with new unit tests. Also
+       fix some exception parameters.
+       * RuntimeResourceSet.cs: New. Internal type used by ResourceManager.
+       ResouceSet cannot be used, as is, because it does not clone objects,
+       when possible, leading to problems when those objects are disposed.
+
+2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceWriter.cs: On 2.0 profile, do not mistakenly identify an
+       enum as a predefined type. Fixes bug #325223.
+
+2007-11-10  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceWriter.cs: On 2.0 profile, use case-insensitive SortedList.
+       Changed exception messages and params to match MS. Allow null values
+       in AddResource overloads. In Dispose (bool), also generate resources
+       (header) if no resources were added. Fixes bug #339074. When Generate
+       is done, reset resources to null to prevent further editing.  This
+       also avoids the need for a separate bool to indicate whether generate
+       was already invoked. Code formatting.
+
+2007-10-27  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceManager.cs: Removed temporary workaround for bug #43567.
+       Reworked basename to only throw ArgumentException if resource with
+       name ending on ".resources" does not actually exist. Fixes bug
+       #336283. Do not throw exception in GetStream since this is already
+       done in InternalGetResourceSet. In InternalGetResourceSet, do not
+       throw MissingManifestResourceException when culture is null. Fixed
+       MissingManifestResourceException message to match MS. When using
+       file-based ResourceManager, then also throw an exception when file
+       does not exist for neutral culture.
+
+2007-09-17  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceManager.cs: Move code for determining manifest resource
+       name into separate method. Only use satellite assemblies for
+       non-invariant cultures. For invariant culture, only load resources
+       from main assembly.
+
+2007-09-17  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceManager.cs: BaseName(Field) should return only the name.
+       Added resourceSource field to store the actual type, which we need for
+       the namespace. Added CheckBaseName method to avoid code duplication.
+       Only check whether basename does not end in '.resources' on 1.0
+       profile. Fixed paramname of ArgumentNullExceptions to match MS.
+       Modified GetManifestResourceStreamNoCase to use resourceSource field
+       to construct manifest resource name. Modified GetStream to use
+       CurrentUICulture when culture is null. Fixed InternalGetResourceSet
+       to use invariant resources when culture is the neutral culture.
+       Code formatting.
+>
+2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceReader.cs: Fixed exception message to match MS. Removed
+       duplicate checks from string ctor.
+
+2007-08-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ResourceReader.cs : implemented GetResourceData(). Resources with
+         unresolvable types could still be parsed, so hold type names
+         instead of types.
+
+2007-07-16  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ResourceReader.cs (ResourceValue): Put the null resource check
+         before the resource version 2 check, this fixes bug #81757
+
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ResourceWriter.cs : fix for runtime serialization type index.
+         Fixed bug #81759.
+
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ResourceWriter.cs : temporarily disable 2.0 output until I get
+         bug #81759 fixed.
+
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * IResourceWriter.cs NeutralResourcesLanguageAttribute.cs
+         SatelliteContractVersionAttribute.cs ResourceManager.cs
+         IResourceReader.cs ResourceSet.cs ResourceWriter.cs
+         ResourceReader.cs UltimateResourceFallbackLocation.cs
+         MissingManifestResourceException.cs :
+         implemented 2.0 resource support (write, and remaining read bits)
+         and GetStream(). Cosmetic attributes fixes.
+
+2007-05-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * MissingSatelliteAssemblyException.cs : new file.
+
+2007-02-16  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceReader.cs: Fixed typo.
+
+2006-12-30  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ResourceManager.cs: Don't create the ResourceSets hashtable in the
+       protected ctor, instead move it to the public ctors. Fixes some not
+       working nunit tests. Also, return a closed ResourceSet instead of
+       creating a new one. Fixes one more test. If only BaseNameField is
+       provided, try to create a resource set from the BaseNameField. One
+       more test that passes now.
+       * ResourceSet.cs: Remove isDisposed. Not needed anymore.
+
+2006-12-30  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ResourceManager.cs: Iterate through the values of the ResourceSets
+       hashtable in ReleaseAllResources instead through the hashtable itself.
+
+2006-12-30  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ResourceReader.cs: Support reading byte arrays in v2 resource files.
+       Patch provided by Red Forks. Fixes bug #79976.
+
+2006-10-29  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ResourceSet.cs, ResourceManager.cs: Calling ResourceSet.Close()
+         disposes a resource set. A closed resource set will now be
+         removed from ResourceSets. Fixes bug #79182.
+
+2006-03-14  Robert Jordan  <robertj@gmx.net>
+
+       * ResourceManager.cs: Don't stop the resource set lookup until
+       the invariant culture is reached. Fixes bug #77242.
+
+2005-11-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * Win32Resources.cs: Add a new 'FileVersion' property.
+
+2005-07-25  Marek Safar  <marek.safar@seznam.cz>
+
+       *  ResourceReader.cs: Implemented reading of primitives for version 2.
+
+2005-03-31  Sebastien Pouliot  <sebastien@ximian.com>
+
+       *  ResourceReader.cs, ResourceSet.cs: Added a LinkDemand for 
+       SerializationFormatter when using a Stream constructor (other ctors
+       have different security - e.g. FileIOPermission for opening a file).
+
+2005-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ResourceManager.cs: use culture.Equals in InternalGetResourceSet().
+
+2005-02-12  Geoff Norton  <gnorton@customerdna.com>
+
+       * ResourceReader.cs: If a resource type index is -1 return null 
+       instead of throwing an exception
+       * ResourceWriter.cs: If an object is null; encode it with type index
+       -1 instead of throwing an exception.
+       
+2005-02-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Win32Resources.cs: Fix warning.
+
+2004-12-06  Ben Maurer  <bmaurer@ximian.com>
+
+       * ResourceManager.cs (InternalResourceManager): on msft, they
+       search for a case-insenstitive match too here.
+
+2004-05-02  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ResourceManager.cs: Avoid endless recursion when a resource file
+       isn't found.
+
+2004-04-08  Lluis Sanchez <lluis@ximian.com>
+
+       * ResourceSet.cs: Added minor null check.
+
+2004-02-03  Jackson Harper <jackson@ximian.com>
+
+       * ResourceSet.cs: Do not throw an exception for null strings.
+       
+2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Win32Resources.cs (Win32VersionInfoResource): Add more properties.
+
+2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Win32Resources.cs (Win32VersionInfoResource:WriteTo): Add padding
+       at the end of each string entry.
+
+       * Win32Resources.cs: Fix warnings not detected by mcs.
+
+2004-01-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Win32Resources.cs: Organize win32 resources into a class hierarchy
+       with the class Win32Resource as the abstract superclass. Add 
+       Win32ResFileReader and Win32IconFileReader classes and the 
+       corresponding resource types.
+
+       * Win32Resources.cs (Win32VersionInfoResource): Fix version number 
+       calculation. Add Language property.
+
+2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Win32Resources.cs: New file.
+
+       * Win32Resources.cs: The value of properties can't be empty.
+
+       * Win32Resources.cs: Add Win32ResourceType enumeration. Add accessors
+       for well-known property names. Add missing namespace declaration.
+
+2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * ResourceWriter.cs (Stream): New internal property used by Ref.Emit.
+
+2003-11-28  Dick Porter  <dick@ximian.com>
+
+       * ResourceSet.cs: Do string compares with the Invariant culture.
+
+2003-11-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
+
+       * ResourceSet.cs: Implemented v1.1 updates
+
+2003-09-07  Dick Porter  <dick@ximian.com>
+
+       * Temporary workaround for bug 43567, so that Npgsql at least
+       can run.
+
+2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ResourceManager.cs: fixed infinite loop when the resource is not
+       found. Also fixes bug #34196.
+
+2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ResourceManager.cs: enabled the code that calls GetSatelliteAssembly
+       and ignore the exception thrown if the assembly cannot be loaded.
+
+2003-05-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ResourceManager.cs: fixed the name for the file when the culture is
+       not de invariant culture. Commented out the GetSatelliteAssembly code
+       to avoid NotImplementedException being thrown.
+
+2002-08-19  Dick Porter  <dick@ximian.com>
+
+       * ResourceWriter.cs: Implemented all methods
+
+       * ResourceReader.cs: Cope with our ResourceSet class name, as well
+       as theirs
+
+2002-08-18  Dick Porter  <dick@ximian.com>
+
+       * ResourceReader.cs: Finished basic implementation.  Some
+       optimisation in conjunction with ResourceSet still possible though
+
+2002-08-14  Dick Porter  <dick@ximian.com>
+
+       * ResourceSet.cs: Throw the correct exceptions
+
+       * ResourceManager.cs: Implemented all unfinished methods
+
+2002-03-12  Duncan Mak  <duncan@ximian.com>
+
+       * MissingManifestResourceException.cs: This should inherit from
+       SystemException, not Exception.
+
+2002-01-26  Nick Drochak  <ndrochak@gol.com>
+
+       * ResourceReader.cs: Finsished reading resource files with just strings
+       in them.  Need to figure out other types, and also resources with
+       multiple types in the same file.
+
+2002-01-24  Nick Drochak  <ndrochak@gol.com>
+
+       * ResourceReader.cs: Implemented constructors. Started on the 
+       GetEnumerator() method.  Not done yet, but comitting for 
+       'disaster recovery' purposes.
+
+2002-01-19  Duncan Mak  <duncan@ximian.com>
+
+       * *.cs: Fixed indentation. There was a stupid bug in my .emacs file.
+
+2002-1-17  Duncan Mak  <duncan@duncan@ximian.com>
+
+       * ResourceSet.cs: Implemented GetObject (string, bool) and GetString
+       (string, bool). ResourceSet has no more MonoTODOs! Also added in the
+       Serializable attribute.
+       
+       * *.cs: convert to Miguel's brace style.
+
+2002-01-17  Duncan Mak  <duncan@ximian.com>
+
+       * ResourceManager.cs: Fixed GetNeutralResourcesLanguage () and added
+       new attributes documented in 1.0 SDK.
+
+2002-01-17  Duncan Mak  <duncan@ximian.com>
+
+       * ResourceWriter.cs: Added MonoTODO decorations.
+
+       * SatelliteContractVersionAttribute.cs: added new attributes in 1.0 SDK.
+
+       * NeutralResoucesLanguageAttribute.cs: added new attributes in 1.0 SDK
+       
+2002-01-16  Duncan Mak  <duncan@ximian.com>
+
+       * ResourceReader.cs: Fixed some typos.
+
+       * ResourceManager.cs: After reading the tutorial from the SDK,
+       finished all the ResourceManager constructors and removed those
+       MonoTODO tags.
+       
+       Removed MonoTODO from GetNeutralResourcesLanguage (Assembly)
+       because Miguel just implemented the whole class, including the
+       constructor that I needed (CultureInfo (string)).
+
+       Updated fields after reading the new docs from the final SDK.
+
+       * ResXFileRef.cs, ResXResourceReader.cs: Removed. They are part of
+       Windows.Forms and require System.Xml, which we don't have access to.
+
+2002-01-13  Duncan Mak  <duncan@ximian.com>
+
+       * ResourceManager.cs: Added more MonoTODOs and cleaned up some 
+       indenting.
+
+2002-01-09  Duncan Mak  <duncan@ximian.com>
+
+       * ResourceManager.cs: Fixed the GetSatelliteContractVersion()
+       method. It was missing a cast before. Removed MonoTODO
+       attribute. ;-) It was tested by John Barnette, so this shouldn't break
+       the build.
+
+       * ResourceManager.cs: Removed MonoTODO attribute on GetString
+       (string), as I believe it's correct. However, GetString
+       (string, CultureInfo) is definitely broken, so I'm marking it with
+       MonoTODO there. I also added MonoTODO to IntenalGetResourceSet().
+
+2002-01-06  Duco Fijma <duco@lorentz.xs4all.nl>
+       * Finalizing IResourceReader and IResourceWriter interfaces: 
+          Added "new"-modifier to IResourceReader.GetEnumerator
+       * Fixed compilation issues in other *.cs, so that the 
+          System.Resources namespaces can be included in the corlib build.
+
+2002-01-05  Ravi Pratap  <ravi@ximian.com>
+
+       * ResourceManager.cs : MonoTODO attribute decoration.
+       
 Tue Dec 18 13:18:32 CET 2001 Paolo Molaro <lupus@ximian.com>
 
        * *.cs: fixed some of the compilation issues: missing