Author: krasnov
Date: 2006-03-12 08:19:35 -0500 (Sun, 12 Mar 2006)
New Revision: 57863

Modified:
   trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
   
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
Log:
* TypeStubManager.cs: fixed type_to_manager member to be initialized per 
appdoamin (within TARGET_JVM block)


Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog 
2006-03-12 12:46:59 UTC (rev 57862)
+++ trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog 
2006-03-12 13:19:35 UTC (rev 57863)
@@ -1,5 +1,10 @@
 2006-03-12  Vladimir Krasnov  <[EMAIL PROTECTED]>
 
+       * TypeStubManager.cs: fixed type_to_manager member to be initialized
+       per appdoamin (within TARGET_JVM block)
+
+2006-03-12  Vladimir Krasnov  <[EMAIL PROTECTED]>
+
        * SoapDocumentationHandler.cs: TARGET_JVM blocks added to exclude
        not supported methods
 

Modified: 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
===================================================================
--- 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
        2006-03-12 12:46:59 UTC (rev 57862)
+++ 
trunk/mcs/class/System.Web.Services/System.Web.Services.Protocols/TypeStubManager.cs
        2006-03-12 13:19:35 UTC (rev 57863)
@@ -372,12 +372,22 @@
 #if !TARGET_JVM
                static Hashtable type_to_manager;
 #else
+               const string type_to_manager_key = 
"TypeStubManager.type_to_manager";
                static Hashtable type_to_manager {
                        get {
-                               return 
(Hashtable)AppDomain.CurrentDomain.GetData("TypeStubManager.type_to_manager");
+                               Hashtable hash = 
(Hashtable)AppDomain.CurrentDomain.GetData(type_to_manager_key);
+
+                               if (hash != null)
+                                       return hash;
+
+                               lock(type_to_manager_key) {
+                                       
AppDomain.CurrentDomain.SetData(type_to_manager_key, new Hashtable());
+                               }
+
+                               return 
(Hashtable)AppDomain.CurrentDomain.GetData(type_to_manager_key);
                        }
                        set {
-                               
AppDomain.CurrentDomain.SetData("TypeStubManager.type_to_manager", value);
+                               //do nothing: we manage our type_to_manager per 
domain
                        }
                }
 #endif

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to