<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -91,6 +91,7 @@
     &lt;Compile Include=&quot;Create.cs&quot; /&gt;
     &lt;Compile Include=&quot;TestWcfDispatcher.cs&quot; /&gt;
     &lt;Compile Include=&quot;TestWcfListener.cs&quot; /&gt;
+    &lt;Compile Include=&quot;TestWorkerThreads.cs&quot; /&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
     &lt;ProjectReference Include=&quot;..\IServiceOriented.ServiceBus\IServiceOriented.ServiceBus.csproj&quot;&gt;</diff>
      <filename>IServiceOriented.ServiceBus.UnitTests/IServiceOriented.ServiceBus.UnitTests.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ using System.IO;
 
 namespace IServiceOriented.ServiceBus.Delivery.Formatters
 {
-    public class ConverterMessageDeliveryReader&lt;T&gt; : MessageDeliveryReader
+    internal class ConverterMessageDeliveryReader&lt;T&gt; : MessageDeliveryReader
     {
         public ConverterMessageDeliveryReader(Stream stream, bool isOwner, MessageEncoder encoder, int maxSizeOfHeaders) : base(stream, isOwner)
         {</diff>
      <filename>IServiceOriented.ServiceBus/Delivery/Formatters/ConverterMessageDeliveryReader.cs</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ using System.IO;
 
 namespace IServiceOriented.ServiceBus.Delivery.Formatters
 {
-    public class ConverterMessageDeliveryWriter&lt;T&gt; : MessageDeliveryWriter
+    internal class ConverterMessageDeliveryWriter&lt;T&gt; : MessageDeliveryWriter
     {
         public ConverterMessageDeliveryWriter(Stream baseStream, bool isOwner, MessageEncoder encoder) : base(baseStream, isOwner)
         {</diff>
      <filename>IServiceOriented.ServiceBus/Delivery/Formatters/ConverterMessageDeliveryWriter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ using IServiceOriented.ServiceBus.Listeners;
 
 namespace IServiceOriented.ServiceBus.Delivery.Formatters
 {
-    public class DataContractMessageDeliveryConverter : MessageDeliveryConverter
+    internal class DataContractMessageDeliveryConverter : MessageDeliveryConverter
     {
         public DataContractMessageDeliveryConverter(Type interfaceType)
         {</diff>
      <filename>IServiceOriented.ServiceBus/Delivery/Formatters/DataContractMessageDeliveryConverter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -17,19 +17,19 @@ using IServiceOriented.ServiceBus.Listeners;
 
 namespace IServiceOriented.ServiceBus.Delivery.Formatters
 {
-    public class MessageContractMessageDeliveryConverter : MessageDeliveryConverter
+    internal class MessageContractMessageDeliveryConverter : MessageDeliveryConverter
     {
         public MessageContractMessageDeliveryConverter(Type contractType)
         {
             foreach (WcfMessageInformation information in WcfUtils.GetMessageInformation(contractType))
             {                
-                cacheConverter(contractType, information.MessageType, information.Action);
+                cacheConverter(information.MessageType, information.Action);
             }
         }
 
         Dictionary&lt;string, TypedMessageConverter&gt; _converterHash = new Dictionary&lt;string, TypedMessageConverter&gt;();
 
-        void cacheConverter(Type contractType, Type objType, string action)
+        void cacheConverter(Type objType, string action)
         {
             string key = objType + &quot;:&quot; + action;
             if (!_converterHash.ContainsKey(key))</diff>
      <filename>IServiceOriented.ServiceBus/Delivery/Formatters/MessageContractMessageDeliveryConverter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ using System.ServiceModel.Channels;
 
 namespace IServiceOriented.ServiceBus.Delivery.Formatters
 {
-    public class RawMessageMessageDeliveryConverter : MessageContractMessageDeliveryConverter
+    internal class RawMessageMessageDeliveryConverter : MessageContractMessageDeliveryConverter
     {
         public RawMessageMessageDeliveryConverter(Type contractType)
             : base(contractType)</diff>
      <filename>IServiceOriented.ServiceBus/Delivery/Formatters/RawMessageMessageDeliveryConverter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -16,3 +16,6 @@
 [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1020:AvoidNamespacesWithFewTypes&quot;, Scope = &quot;namespace&quot;, Target = &quot;IServiceOriented.ServiceBus.Threading&quot;)]
 [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Performance&quot;, &quot;CA1811:AvoidUncalledPrivateCode&quot;, Scope = &quot;member&quot;, Target = &quot;IServiceOriented.ServiceBus.SimpleServiceLocator.#RegisterService(System.Type)&quot;)]
 [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Performance&quot;, &quot;CA1811:AvoidUncalledPrivateCode&quot;, Scope = &quot;member&quot;, Target = &quot;IServiceOriented.ServiceBus.SimpleServiceLocator.#RegisterService(System.Type,System.String)&quot;)]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1063:ImplementIDisposableCorrectly&quot;, Scope = &quot;member&quot;, Target = &quot;IServiceOriented.ServiceBus.IO.MessageDeliveryReader.#System.IDisposable.Dispose()&quot;)]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1063:ImplementIDisposableCorrectly&quot;, Scope = &quot;member&quot;, Target = &quot;IServiceOriented.ServiceBus.IO.MessageDeliveryWriter.#System.IDisposable.Dispose()&quot;)]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1020:AvoidNamespacesWithFewTypes&quot;, Scope = &quot;namespace&quot;, Target = &quot;IServiceOriented.ServiceBus.IO&quot;)]</diff>
      <filename>IServiceOriented.ServiceBus/GlobalSuppressions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ namespace IServiceOriented.ServiceBus.IO
 {
     public abstract class MessageDeliveryReader : IDisposable
     {
-        public MessageDeliveryReader(Stream stream, bool isOwner)
+        protected MessageDeliveryReader(Stream stream, bool isOwner)
         {
             BaseStream = stream;
             OwnsStream = isOwner;</diff>
      <filename>IServiceOriented.ServiceBus/IO/MessageDeliveryReader.cs</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ namespace IServiceOriented.ServiceBus.IO
 {
     public abstract class MessageDeliveryWriter : IDisposable
     {
-        public MessageDeliveryWriter(Stream stream, bool isOwner)
+        protected MessageDeliveryWriter(Stream stream, bool isOwner)
         {
             BaseStream = stream;
             OwnsStream = isOwner;</diff>
      <filename>IServiceOriented.ServiceBus/IO/MessageDeliveryWriter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -83,7 +83,7 @@ namespace IServiceOriented.ServiceBus.Listeners
                         {
                             fileStream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None);
                         }
-                        catch(FileNotFoundException)
+                        catch (FileNotFoundException)
                         {
                             throw;
                         }
@@ -97,6 +97,13 @@ namespace IServiceOriented.ServiceBus.Listeners
                                 throw new TimeoutException(&quot;Timed out while trying to open file&quot;);
                             }
                         }
+                        finally
+                        {
+                            if (fileStream != null)
+                            {
+                                fileStream.Close();
+                            }
+                        }
                     }
 
                     </diff>
      <filename>IServiceOriented.ServiceBus/Listeners/FileSystemListener.cs</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,17 @@ namespace IServiceOriented.ServiceBus.Threading
 
         private readonly TimeSpan Timeout;
         private readonly Action&lt;TimeSpan, object&gt; UnitOfWork;
-        
+
+        public int Count
+        {
+            get
+            {
+                lock (_workers)
+                {
+                    return _workers.Count;
+                }
+            }
+        }
         class WorkerInfo
         {
             public AutoResetEvent StopEvent;
@@ -47,9 +57,9 @@ namespace IServiceOriented.ServiceBus.Threading
         
         List&lt;WorkerInfo&gt; _workers = new List&lt;WorkerInfo&gt;();
 
-        public void AddWorker()
+        public int AddWorker()
         {
-            AddWorker(null);
+            return AddWorker(null);
         }
 
         public int AddWorker(object state)</diff>
      <filename>IServiceOriented.ServiceBus/Threading/WorkerThreads.cs</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>083730729686d6730e7c206e83c0752c56756e38</id>
    </parent>
  </parents>
  <author>
    <name>jezell</name>
    <email>jezell@gmail.com</email>
  </author>
  <url>http://github.com/jezell/iserviceoriented/commit/15b251d5a3c327bd976d58299c7b88aebcffad66</url>
  <id>15b251d5a3c327bd976d58299c7b88aebcffad66</id>
  <committed-date>2008-10-15T15:14:22-07:00</committed-date>
  <authored-date>2008-10-15T15:14:22-07:00</authored-date>
  <message>Code analysis cleanup</message>
  <tree>81d3f2c748e0c983e1facb19e1ba8524913fc121</tree>
  <committer>
    <name>jezell</name>
    <email>jezell@gmail.com</email>
  </committer>
</commit>
