diff --git a/src/Spring/Spring.Core/Context/Support/AbstractXmlApplicationContext.cs b/src/Spring/Spring.Core/Context/Support/AbstractXmlApplicationContext.cs index 2c0ae2ec..c76603a6 100644 --- a/src/Spring/Spring.Core/Context/Support/AbstractXmlApplicationContext.cs +++ b/src/Spring/Spring.Core/Context/Support/AbstractXmlApplicationContext.cs @@ -116,12 +116,11 @@ namespace Spring.Context.Support protected override void RefreshObjectFactory() { // Shut down previous object factory, if any. - IConfigurableListableObjectFactory oldObjectFactory = null; - oldObjectFactory = Interlocked.Exchange(ref _objectFactory, null); + IConfigurableListableObjectFactory oldObjectFactory = _objectFactory; + _objectFactory = null; if (oldObjectFactory != null) { - // _objectFactory = null; oldObjectFactory.Dispose(); } diff --git a/src/Spring/Spring.Core/Util/IoUtils.cs b/src/Spring/Spring.Core/Util/IoUtils.cs index a0be58fe..2d405aff 100644 --- a/src/Spring/Spring.Core/Util/IoUtils.cs +++ b/src/Spring/Spring.Core/Util/IoUtils.cs @@ -3,16 +3,16 @@ using System.IO; namespace Spring.Util { - /// - /// Utility methods for IO handling - /// + /// + /// Utility methods for IO handling + /// internal sealed class IOUtils { private IOUtils() { throw new InvalidOperationException("instantiation not supported"); } - + /// /// Copies one stream into another. /// (Don't forget to call on the destination stream!) @@ -20,36 +20,31 @@ namespace Spring.Util /// /// Does not close the input stream! /// - public static void CopyStream( Stream src, Stream dest ) + public static void CopyStream(Stream src, Stream dest) { int bufferSize = 2048; byte[] buffer = new byte[bufferSize]; - int bytesRead = src.Read(buffer, 0, bufferSize); - while( bytesRead == bufferSize ) + int bytesRead = 0; + while ((bytesRead = src.Read(buffer, 0, bufferSize)) > 0) { - dest.Write( buffer, 0, bytesRead ); - bytesRead = src.Read( buffer, 0, bufferSize ); + dest.Write(buffer, 0, bytesRead); } - if (bytesRead > 0) - { - dest.Write( buffer, 0, bytesRead ); - } } - + /// /// Reads a stream into a byte array. /// /// /// Does not close the input stream! /// - public static byte[] ToByteArray( Stream src ) + public static byte[] ToByteArray(Stream src) { MemoryStream stm = new MemoryStream(); - CopyStream( src, stm ); - stm.Flush(); + CopyStream(src, stm); + stm.Close(); return stm.ToArray(); - } - + } + } }