Procházet zdrojové kódy

Merge branch 'master' of git://github.com/mono/mono

tgiphil před 15 roky
rodič
revize
e44022ec89
36 změnil soubory, kde provedl 303 přidání a 43 odebrání
  1. 1 0
      README
  2. 5 0
      mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/ChangeLog
  3. 5 2
      mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngPattern.cs
  4. 4 0
      mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
  5. 32 19
      mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConsoleLogger.cs
  6. 6 0
      mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog
  7. 4 0
      mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ClientSessionCache.cs
  8. 10 2
      mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs
  9. 5 0
      mcs/class/System.Core/System/ChangeLog
  10. 1 1
      mcs/class/System.Core/System/Funcs.cs
  11. 7 0
      mcs/class/System.Data/System.Data.Common/ChangeLog
  12. 4 3
      mcs/class/System.Data/System.Data.Common/DataContainer.cs
  13. 6 0
      mcs/class/System.Data/System.Data/ChangeLog
  14. 8 1
      mcs/class/System.Data/System.Data/DataColumnCollection.cs
  15. 8 0
      mcs/class/System.Data/Test/System.Data/ChangeLog
  16. 41 0
      mcs/class/System.Data/Test/System.Data/DataColumnTest.cs
  17. 1 1
      mcs/class/System.Net/System.Net.Policy/BaseDomainPolicy.cs
  18. 6 0
      mcs/class/System.Net/System.Net.Policy/ChangeLog
  19. 14 13
      mcs/class/System.Net/System.Net.Policy/ClientAccessPolicy.cs
  20. 17 0
      mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
  21. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/MenuItemBindingCollection.cs
  22. 7 0
      mcs/class/System.Web/System.Web.UI.WebControls/MenuItemStyleCollection.cs
  23. 19 0
      mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeBindingCollection.cs
  24. 6 0
      mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeStyleCollection.cs
  25. 10 0
      mcs/class/System.Web/System.Web.UI.WebControls/ValidationSummary.cs
  26. 18 0
      mcs/class/System.Web/System.Web.UI.WebControls/WizardStepBase.cs
  27. 5 0
      mcs/class/System.Web/System.Web.UI/ChangeLog
  28. 3 0
      mcs/class/System.Web/System.Web.UI/ClientScriptManager.cs
  29. 8 0
      mcs/class/corlib/Test/System.Diagnostics.Contracts/ChangeLog
  30. 2 0
      mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssertTest.cs
  31. 1 0
      mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssumeTest.cs
  32. 1 0
      mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractHelperTest.cs
  33. 5 0
      mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs
  34. 9 0
      mono/metadata/ChangeLog
  35. 4 0
      mono/metadata/file-io.c
  36. 1 1
      mono/metadata/loader.c

+ 1 - 0
README

@@ -557,3 +557,4 @@ This is Mono.
 		directory is automatically configured to share the
 		same prefix than this module gets.
 
+

+ 5 - 0
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/ChangeLog

@@ -1,3 +1,8 @@
+2010-07-23  Atsushi Enomoto <[email protected]>
+
+	* RelaxngPattern.cs : inherit XmlResolver to parsed rng component.
+	  Fixed bug #622630.
+
 2010-06-25  Atsushi Enomoto <[email protected]>
 
 	* RelaxngReader.cs : don't use Name, use LocalName. Fixed bug #617264.

+ 5 - 2
mcs/class/Commons.Xml.Relaxng/Commons.Xml.Relaxng/RelaxngPattern.cs

@@ -81,14 +81,15 @@ namespace Commons.Xml.Relaxng
 		{
 			XmlTextReader xtr = null;
 			RelaxngGrammar g = null;
+			RelaxngPattern p;
 			try {
 				if (grammar.IsSourceCompactSyntax) {
-					return RncParser.ParseRnc (new StreamReader ((Stream) grammar.Resolver.GetEntity (uri, null, typeof (Stream))), null, BaseUri, nsContext);
+					p = RncParser.ParseRnc (new StreamReader ((Stream) grammar.Resolver.GetEntity (uri, null, typeof (Stream))), null, BaseUri, nsContext);
 				} else {
 					xtr = new XmlTextReader (uri.AbsoluteUri, (Stream) grammar.Resolver.GetEntity (uri, null, typeof (Stream)));
 					RelaxngReader r = new RelaxngReader (xtr, nsContext, grammar.Resolver);
 					r.MoveToContent ();
-					return r.ReadPattern ();
+					p = r.ReadPattern ();
 				}
 			} catch (Exception ex) { // umm, bad catch though :-(
 				throw new RelaxngException (this, String.Format("Could not include grammar {0}: {1}", uri.AbsoluteUri, ex.Message), ex);
@@ -96,6 +97,8 @@ namespace Commons.Xml.Relaxng
 				if (xtr != null)
 					xtr.Close ();
 			}
+			p.XmlResolver = grammar.Resolver;
+			return p;
 		}
 	}
 

+ 4 - 0
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog

@@ -1,3 +1,7 @@
+2010-07-24  Ankit Jain  <[email protected]>
+
+	* ConsoleLogger.cs: Honor LoggerVerbosity.Quiet .
+
 2010-07-22  Ankit Jain  <[email protected]>
 
 	* ConsoleLogger.cs: Add support for parameter 'NoItemAndPropertyList'.

+ 32 - 19
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConsoleLogger.cs

@@ -213,9 +213,11 @@ namespace Microsoft.Build.BuildEngine {
 		
 		public void BuildStartedHandler (object sender, BuildStartedEventArgs args)
 		{
-			WriteLine (String.Empty);
-			WriteLine (String.Format ("Build started {0}.", args.Timestamp));
-			WriteLine ("__________________________________________________");
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
+				WriteLine (String.Empty);
+				WriteLine (String.Format ("Build started {0}.", args.Timestamp));
+				WriteLine ("__________________________________________________");
+			}
 			buildStart = args.Timestamp;
 
 			PushEvent (args);
@@ -223,6 +225,11 @@ namespace Microsoft.Build.BuildEngine {
 		
 		public void BuildFinishedHandler (object sender, BuildFinishedEventArgs args)
 		{
+			if (!IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
+				PopEvent ();
+				return;
+			}
+
 			if (args.Succeeded == true && !projectFailed) {
 				WriteLine ("Build succeeded.");
 			} else {
@@ -280,13 +287,15 @@ namespace Microsoft.Build.BuildEngine {
 
 		public void ProjectStartedHandler (object sender, ProjectStartedEventArgs args)
 		{
-			SetColor (eventColor);
-			WriteLine (String.Format ("Project \"{0}\" ({1} target(s)):", args.ProjectFile,
-						String.IsNullOrEmpty (args.TargetNames) ? "default" : args.TargetNames));
-			ResetColor ();
-			WriteLine (String.Empty);
-			DumpProperties (args.Properties);
-			DumpItems (args.Items);
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
+				SetColor (eventColor);
+				WriteLine (String.Format ("Project \"{0}\" ({1} target(s)):", args.ProjectFile,
+							String.IsNullOrEmpty (args.TargetNames) ? "default" : args.TargetNames));
+				ResetColor ();
+				WriteLine (String.Empty);
+				DumpProperties (args.Properties);
+				DumpItems (args.Items);
+			}
 			PushEvent (args);
 		}
 		
@@ -310,25 +319,28 @@ namespace Microsoft.Build.BuildEngine {
 		
 		public void TargetStartedHandler (object sender, TargetStartedEventArgs args)
 		{
-			indent++;
-			SetColor (eventColor);
-			WriteLine (String.Format ("Target {0}:",args.TargetName));
-			ResetColor ();
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
+				indent++;
+				SetColor (eventColor);
+				WriteLine (String.Format ("Target {0}:",args.TargetName));
+				ResetColor ();
+			}
 			PushEvent (args);
 		}
 		
 		public void TargetFinishedHandler (object sender, TargetFinishedEventArgs args)
 		{
-			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Detailed) || !args.Succeeded) {
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Detailed) ||
+					(!args.Succeeded && IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal))) {
 				SetColor (eventColor);
 				WriteLine (String.Format ("Done building target \"{0}\" in project \"{1}\".{2}",
 					args.TargetName, args.ProjectFile,
 					args.Succeeded ? String.Empty : "-- FAILED"));
 				ResetColor ();
+				WriteLine (String.Empty);
 			}
 			indent--;
 
-			WriteLine (String.Empty);
 			PopEvent ();
 		}
 		
@@ -346,7 +358,8 @@ namespace Microsoft.Build.BuildEngine {
 		public void TaskFinishedHandler (object sender, TaskFinishedEventArgs args)
 		{
 			indent--;
-			if (this.verbosity == LoggerVerbosity.Detailed || !args.Succeeded) {
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Detailed) ||
+					(!args.Succeeded && IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal))) {
 				SetColor (eventColor);
 				if (args.Succeeded)
 					WriteLine (String.Format ("Done executing task \"{0}\"", args.TaskName));
@@ -373,7 +386,7 @@ namespace Microsoft.Build.BuildEngine {
 		public void WarningHandler (object sender, BuildWarningEventArgs args)
 		{
 			string msg = FormatWarningEvent (args);
-			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Quiet)) {
 				SetColor (warningColor);
 				WriteLineWithoutIndent (msg);
 				ResetColor ();
@@ -391,7 +404,7 @@ namespace Microsoft.Build.BuildEngine {
 		public void ErrorHandler (object sender, BuildErrorEventArgs args)
 		{
 			string msg = FormatErrorEvent (args);
-			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Minimal)) {
+			if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Quiet)) {
 				SetColor (errorColor);
 				WriteLineWithoutIndent (msg);
 				ResetColor ();

+ 6 - 0
mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog

@@ -1,3 +1,9 @@
+2010-07-23  Sebastien Pouliot  <[email protected]>
+
+	* ClientSessionCache.cs: Do not let the ValidityInterval be 
+	controlled by an environment variable for Moonlight
+	* HttpsClientStream.cs: Simplify code for Moonlight profile
+
 2010-05-10  Sebastien Pouliot  <[email protected]>
 
 	* CipherSuite.cs:

+ 4 - 0
mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ClientSessionCache.cs

@@ -47,6 +47,9 @@ namespace Mono.Security.Protocol.Tls {
 
 		static ClientSessionInfo ()
 		{
+#if MOONLIGHT
+			ValidityInterval = DefaultValidityInterval;
+#else
 			string user_cache_timeout = Environment.GetEnvironmentVariable ("MONO_TLS_SESSION_CACHE_TIMEOUT");
 			if (user_cache_timeout == null) {
 				ValidityInterval = DefaultValidityInterval;
@@ -58,6 +61,7 @@ namespace Mono.Security.Protocol.Tls {
 					ValidityInterval = DefaultValidityInterval;
 				}
 			}
+#endif
 		}
 
 		public ClientSessionInfo (string hostname, byte[] id)

+ 10 - 2
mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs

@@ -55,10 +55,10 @@ namespace Mono.Security.Protocol.Tls {
 			_status = 0;
 			if (buffer != null)
 				InputBuffer.Write (buffer, 0, buffer.Length);
-#if !NET_1_0
+#if !MOONLIGHT
                         // also saved from reflection
                         base.CheckCertRevocationStatus = ServicePointManager.CheckCertificateRevocationList;
-#endif
+
 			ClientCertSelection += delegate (X509CertificateCollection clientCerts, X509Certificate serverCertificate,
 				string targetHost, X509CertificateCollection serverRequestedCertificates) {
 				return ((clientCerts == null) || (clientCerts.Count == 0)) ? null : clientCerts [0];
@@ -67,6 +67,7 @@ namespace Mono.Security.Protocol.Tls {
 				X509Certificate2 cert = (certificate as X509Certificate2);
 				return (cert == null) ? null : cert.PrivateKey;
 			};
+#endif
                }
 
 		public bool TrustFailure {
@@ -81,6 +82,12 @@ namespace Mono.Security.Protocol.Tls {
 			}
 		}
 
+#if MOONLIGHT
+                internal override bool RaiseServerCertificateValidation (X509Certificate certificate, int[] certificateErrors)
+		{
+			return true;
+		}
+#else
                 internal override bool RaiseServerCertificateValidation (X509Certificate certificate, int[] certificateErrors)
                 {
 			bool failed = (certificateErrors.Length > 0);
@@ -118,5 +125,6 @@ namespace Mono.Security.Protocol.Tls {
 			}
 			return failed;
 		}
+#endif
         }
 }

+ 5 - 0
mcs/class/System.Core/System/ChangeLog

@@ -1,3 +1,8 @@
+
+Fri Jul 23 16:46:38 CEST 2010 Paolo Molaro <[email protected]>
+
+	* Funcs.cs: Fixed typo in Func`15.
+
 2010-07-09 Gonzalo Paniagua Javier <[email protected]>
 
 	* TimeZoneInfo.cs: avoid nullref when there are no adjustment rules.

+ 1 - 1
mcs/class/System.Core/System/Funcs.cs

@@ -55,7 +55,7 @@ namespace System
 		T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13);
 
 	public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, out TResult> (
-		T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T4 arg14);
+		T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14);
 
 	public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, in T15, out TResult> (
 		T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15);

+ 7 - 0
mcs/class/System.Data/System.Data.Common/ChangeLog

@@ -1,3 +1,10 @@
+2010-07-23  Veerapuram Varadhan  <[email protected]>
+
+	** Fixes #565616 - Based on Patch by Hubert FONGARNAND
+	* DataContainer.cs (GetContainerData): If typecode is string, 
+	call Convert.ToString() irrespective of whether value is 
+	IConvertible or not. 
+	
 2010-03-26  Veerapuram Varadhan  <[email protected]>
 
     ** Fixes #564833/580736

+ 4 - 3
mcs/class/System.Data/System.Data.Common/DataContainer.cs

@@ -157,19 +157,20 @@ namespace System.Data.Common
 		internal object GetContainerData (object value) 
 		{
 			object obj; 
+			TypeCode tc;
 
 			if (_type.IsInstanceOfType (value)) {
 				return value;
+			} else if ((tc = Type.GetTypeCode (_type)) == TypeCode.String) {
+				return (Convert.ToString (value));
 			} else if (value is IConvertible) {
-				switch (Type.GetTypeCode(_type)) {
+				switch (tc) {
 					case TypeCode.Int16:
 						return (Convert.ToInt16 (value));
 					case TypeCode.Int32:
 						return (Convert.ToInt32 (value));
 					case TypeCode.Int64:
 						return (Convert.ToInt64 (value));
-					case TypeCode.String:
-						return (Convert.ToString (value));
 					case TypeCode.Boolean:
 						return (Convert.ToBoolean (value));
 					case TypeCode.Byte:

+ 6 - 0
mcs/class/System.Data/System.Data/ChangeLog

@@ -1,3 +1,9 @@
+2010-07-23  Veerapuram Varadhan  <[email protected]>
+
+	** Fixes #623451
+	* DataColumnCollection.cs (MoveColumn): Fix shifting of DataColumn  
+	according to the direction of movement.
+	
 2010-06-23  Veerapuram Varadhan  <[email protected]>
 
 	** Fixes #581679

+ 8 - 1
mcs/class/System.Data/System.Data/DataColumnCollection.cs

@@ -714,9 +714,16 @@ namespace System.Data {
 			int start = newOrdinal > oldOrdinal ? oldOrdinal : newOrdinal;
 			int end = newOrdinal > oldOrdinal ?  newOrdinal : oldOrdinal;
 			int direction = newOrdinal > oldOrdinal ? 1 : (-1);
+			
+			// swap ordinals as per direction of column movement
+			if (direction < 0) {
+				start = start + end;
+				end = start - end;
+				start -= end;
+			}
 
 			DataColumn currColumn = this [start];
-			for (int i = start; i < end; i += direction) {
+			for (int i = start; (direction>0 ? i<end : i>end); i += direction) {
 				List [i] = List [i+direction];
 				((DataColumn) List [i]).Ordinal = i;
 			}

+ 8 - 0
mcs/class/System.Data/Test/System.Data/ChangeLog

@@ -1,3 +1,11 @@
+2010-07-23  Veerapuram Varadhan  <[email protected]>
+
+	* DataColumnTest.cs (B623451_SetOrdinalTest): Added new.
+	
+2010-07-23  Veerapuram Varadhan  <[email protected]>
+
+	* DataColumnTest.cs (B565616_NonIConvertibleTypeTest): Added new.
+	
 2010-01-21  Jonathan Pobst  <[email protected]>
 
 	* DataTableTest2.cs: Mark PrimaryKey test as NotWorking.

+ 41 - 0
mcs/class/System.Data/Test/System.Data/DataColumnTest.cs

@@ -872,5 +872,46 @@ namespace MonoTests.System.Data
 			Assert.AreEqual (-1, col2.Ordinal, "#D1");
 			Assert.IsNull (col2.Table, "#D2");
 		}
+		
+		[Test]
+		public void B565616_NonIConvertibleTypeTest ()
+		{
+			try {
+				DataTable dt = new DataTable ();
+				Guid id = Guid.NewGuid();
+				dt.Columns.Add ("ID", typeof(string));
+				DataRow row = dt.NewRow ();
+				row["ID"]= id;
+				Assert.AreEqual (id.ToString(), row["ID"], "#N1");
+			} catch (InvalidCastException ex) {
+				Assert.Fail ("#NonIConvertibleType Test");
+			}
+		}
+		
+		[Test]
+		public void B623451_SetOrdinalTest ()
+		{
+			try {
+				DataTable t = new DataTable();
+				t.Columns.Add("one");
+				t.Columns.Add("two");
+				t.Columns.Add("three");
+				Assert.AreEqual ("one", t.Columns[0].ColumnName, "#SO1-1");
+				Assert.AreEqual ("two", t.Columns[1].ColumnName, "#SO1-2");
+				Assert.AreEqual ("three", t.Columns[2].ColumnName, "#SO1-3");
+
+				t.Columns["three"].SetOrdinal(0);
+				Assert.AreEqual ("three", t.Columns[0].ColumnName, "S02-1");
+				Assert.AreEqual ("one", t.Columns[1].ColumnName, "S02-2");
+				Assert.AreEqual ("two", t.Columns[2].ColumnName, "S02-3");
+
+				t.Columns["three"].SetOrdinal(1);
+				Assert.AreEqual ("one", t.Columns[0].ColumnName, "S03-1");
+				Assert.AreEqual ("three", t.Columns[1].ColumnName, "S03-2");
+				Assert.AreEqual ("two", t.Columns[2].ColumnName, "S03-3");
+			} catch (ArgumentOutOfRangeException ex) {
+				Assert.Fail ("SetOrdinalTest failed");
+			}
+		}
 	}
 }

+ 1 - 1
mcs/class/System.Net/System.Net.Policy/BaseDomainPolicy.cs

@@ -131,7 +131,7 @@ namespace System.Net.Policy {
 		abstract public bool IsAllowed (WebRequest request);
 
 		public Exception Exception {
-			get { return null; }
+			get; internal set;
 		}
 	}
 }

+ 6 - 0
mcs/class/System.Net/System.Net.Policy/ChangeLog

@@ -1,3 +1,9 @@
+2010-07-23  Sebastien Pouliot  <[email protected]>
+
+	* BaseDomainPolicy.cs: Add internal setter for Exception property
+	* ClientAccessPolicy.cs: Re-order checks (to match SL) and throw 
+	NotSupportedException for invalid headers
+
 2010-07-20  Sebastien Pouliot  <[email protected]>
 
 	* NoAccessPolicy.cs: Set default to SecurityException each time

+ 14 - 13
mcs/class/System.Net/System.Net.Policy/ClientAccessPolicy.cs

@@ -75,7 +75,7 @@ namespace System.Net.Policy {
 				// does something allow our URI in this policy ?
 				foreach (AllowFrom af in policy.AllowedServices) {
 					// fake "GET" as method as this does not apply to sockets
-					if (af.IsAllowed (ApplicationUri, "GET", null)) {
+					if (af.IsAllowed (ApplicationUri, "GET")) {
 						// if so, is our request port allowed ?
 						if (policy.PortAllowed (endpoint.Port))
 							return true;
@@ -122,19 +122,24 @@ namespace System.Net.Policy {
 
 		public bool IsAllowed (Uri uri, string method, params string [] headerKeys)
 		{
-			// at this stage the URI has removed the "offending" characters so we need to look at the original
-			if (!CheckOriginalPath (uri)) 
-				return false;
-
 			foreach (AccessPolicy policy in AccessPolicyList) {
 				// does something allow our URI in this policy ?
 				foreach (AllowFrom af in policy.AllowedServices) {
 					// is the application (XAP) URI allowed by the policy ?
-					if (af.IsAllowed (ApplicationUri, method, headerKeys)) {
+					// check headers
+					if (!af.HttpRequestHeaders.IsAllowed (headerKeys)) {
+						Exception = new NotSupportedException ();
+						return false;
+					}
+
+					if (af.IsAllowed (ApplicationUri, method)) {
 						foreach (GrantTo gt in policy.GrantedResources) {
 							// is the requested access to the Uri granted under this policy ?
-							if (gt.IsGranted (uri))
-								return true;
+							if (gt.IsGranted (uri)) {
+								// at this stage the URI has removed the "offending" characters so 
+								// we need to look at the original
+								return CheckOriginalPath (uri);
+							}
 						}
 					}
 				}
@@ -162,12 +167,8 @@ namespace System.Net.Policy {
 
 			public string Scheme { get; internal set; }
 
-			public bool IsAllowed (Uri uri, string method, string [] headerKeys)
+			public bool IsAllowed (Uri uri, string method)
 			{
-				// check headers
-				if (!HttpRequestHeaders.IsAllowed (headerKeys))
-					return false;
-
 				// check scheme
 				if ((Scheme.Length > 0) && (Scheme == uri.Scheme)) {
 					switch (Scheme) {

+ 17 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,20 @@
+2010-07-23  Marek Habersack  <[email protected]>
+
+	* MenuItemBindingCollection.cs: added the OnClear,
+	OnRemoveComplete and OnValidate methods (2.0+)
+
+	* MenuItemStyleCollection.cs: added the OnInsert method (2.0+)
+
+	* TreeNodeStyleCollection.cs: added the OnInsert method (2.0+)
+
+	* TreeNodeBindingCollection.cs: added the OnClear,
+	OnRemoveComplete and OnValidate methods (2.0+)
+
+	* ValidationSummary.cs: implemented OnInit (4.0)
+
+	* WizardStepBase.cs: added the LoadViewState, OnLoad and
+	RenderChildren methods (2.0+)
+
 2010-07-22  Marek Habersack  <[email protected]>
 
 	* MenuItemBinding.cs: made code a bit more compact.

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/MenuItemBindingCollection.cs

@@ -98,6 +98,25 @@ namespace System.Web.UI.WebControls
 		{
 			((MenuItemBinding)o).SetDirty ();
 		}
+
+		// These three methods are present but not documented
+		protected override void OnClear ()
+		{
+			// Why override?
+			base.OnClear ();
+		}
+
+		protected override void OnRemoveComplete (int index, object value)
+		{
+			// Why override?
+			base.OnRemoveComplete (index, value);
+		}
+
+		protected override void OnValidate (object value)
+		{
+			// Why override?
+			base.OnValidate (value);
+		}
 	}
 }
 

+ 7 - 0
mcs/class/System.Web/System.Web.UI.WebControls/MenuItemStyleCollection.cs

@@ -98,6 +98,13 @@ namespace System.Web.UI.WebControls
 		{
 			((MenuItemStyle)o).SetDirty ();
 		}
+
+		// Present but not documented
+		protected override void OnInsert (int index, object value)
+		{
+			// Why override?
+			base.OnInsert (index, value);
+		}
 	}
 }
 

+ 19 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeBindingCollection.cs

@@ -98,6 +98,25 @@ namespace System.Web.UI.WebControls
 		{
 			((TreeNodeBinding)o).SetDirty ();
 		}
+
+		// These three methods are present, but undocumented
+		protected override void OnClear ()
+		{
+			// Why override?
+			base.OnClear ();
+		}
+
+		protected override void OnRemoveComplete (int index, object value)
+		{
+			// Why override?
+			base.OnRemoveComplete (index, value);
+		}
+
+		protected override void OnValidate (object value)
+		{
+			// Why override?
+			base.OnValidate (value);
+		}
 	}
 }
 

+ 6 - 0
mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeStyleCollection.cs

@@ -102,6 +102,12 @@ namespace System.Web.UI.WebControls
 		{
 			((TreeNodeStyle)o).SetDirty ();
 		}
+
+		protected override void OnInsert (int index, object value)
+		{
+			// Why override?
+			base.OnInsert (index, value);
+		}
 	}
 }
 

+ 10 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ValidationSummary.cs

@@ -227,7 +227,17 @@ namespace System.Web.UI.WebControls {
 				Page.ClientScript.RegisterExpandoAttribute (controlId, attributeName, attributeValue, encode);
 		}
 #endif
+#if NET_4_0
+		protected internal override void OnInit (EventArgs e)
+		{
+			base.OnInit (e);
+			if (!RenderingCompatibilityLessThan40)
+				return;
 
+			if (ForeColor == Color.Empty)
+				ForeColor = Color.Red;
+		}
+#endif
 #if NET_2_0
 		protected internal
 #else		

+ 18 - 0
mcs/class/System.Web/System.Web.UI.WebControls/WizardStepBase.cs

@@ -107,6 +107,24 @@ namespace System.Web.UI.WebControls
 			get { return wizard; }
 		}
 		
+		protected override void LoadViewState (object savedState)
+		{
+			// why override?
+			base.LoadViewState (savedState);
+		}
+
+		protected internal override void OnLoad (EventArgs e)
+		{
+			// why override?
+			base.OnLoad (e);
+		}
+
+		protected internal override void RenderChildren (HtmlTextWriter writer)
+		{
+			// why override?
+			base.RenderChildren (writer);
+		}
+		
 		internal void SetWizard (Wizard w)
 		{
 			wizard = w;

+ 5 - 0
mcs/class/System.Web/System.Web.UI/ChangeLog

@@ -1,3 +1,8 @@
+2010-07-23  Marek Habersack  <[email protected]>
+
+	* ClientScriptManager.cs: 4.0 adds a class="aspNetHidden"
+	attribute to the div element surrounding the hidden elements.
+
 2010-07-14  Marek Habersack  <[email protected]>
 
 	* DataKeyPropertyAttribute.cs: added (4.0)

+ 3 - 0
mcs/class/System.Web/System.Web.UI/ClientScriptManager.cs

@@ -624,6 +624,9 @@ namespace System.Web.UI
 				return;
 
 			writer.WriteLine ();
+#if NET_4_0
+			writer.AddAttribute (HtmlTextWriterAttribute.Class, "aspNetHidden");
+#endif
 			writer.RenderBeginTag (HtmlTextWriterTag.Div);
 			int oldIndent = writer.Indent;
 			writer.Indent = 0;

+ 8 - 0
mcs/class/corlib/Test/System.Diagnostics.Contracts/ChangeLog

@@ -1,3 +1,11 @@
+2010-07-23  Atsushi Enomoto  <[email protected]>
+
+	* ContractAssertTest.cs
+	  ContractAssumeTest.cs
+	  ContractHelperTest.cs
+	  ContractMustUseRewriterTest.cs:
+	  Mark couple of runtime breaking tests (on .NET 4.0) as [Ignore].
+
 2010-06-23  Chris Bacon <[email protected]>
 
 	* Added all files

+ 2 - 0
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssertTest.cs

@@ -30,6 +30,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Assert(false) will cause an assert to be triggered with the correct message.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestAssertNoEventHandler ()
 		{
 			try {
@@ -53,6 +54,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Because nothing is done in the event handler, an assert should be triggered.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestAssertEventHandlerNoAction ()
 		{
 			bool visitedEventHandler = false;

+ 1 - 0
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractAssumeTest.cs

@@ -21,6 +21,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// or exception is slightly different.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestAssumeMessage ()
 		{
 			try {

+ 1 - 0
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractHelperTest.cs

@@ -240,6 +240,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.TriggerFailure() triggers the assert. Check that the assert is triggered, with the correct text.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestTriggerFailure ()
 		{
 			try {

+ 5 - 0
mcs/class/corlib/Test/System.Diagnostics.Contracts/ContractMustUseRewriterTest.cs

@@ -48,6 +48,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Requires() ALWAYS triggers an assert, regardless of any other factors.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestRequires ()
 		{
 			CheckMustUseRewriter ("Description: Must use the rewriter when using Contract.Requires",
@@ -62,6 +63,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Requires() ALWAYS triggers an assert, regardless of any other factors.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestRequiresTException ()
 		{
 			CheckMustUseRewriter ("Description: Must use the rewriter when using Contract.Requires<TException>",
@@ -76,6 +78,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Ensures() ALWAYS triggers an assert, regardless of any other factors.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestEnsures ()
 		{
 			CheckMustUseRewriter ("Description: Must use the rewriter when using Contract.Ensures",
@@ -90,6 +93,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Ensures() ALWAYS triggers an assert, regardless of any other factors.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestEnsuresOnThrow ()
 		{
 			CheckMustUseRewriter ("Description: Must use the rewriter when using Contract.EnsuresOnThrow",
@@ -104,6 +108,7 @@ namespace MonoTests.System.Diagnostics.Contracts {
 		/// Contract.Ensures() ALWAYS triggers an assert, regardless of any other factors.
 		/// </summary>
 		[Test]
+		[Ignore ("This causes NUnit crash on .NET 4.0")]
 		public void TestInvariant ()
 		{
 			CheckMustUseRewriter ("Description: Must use the rewriter when using Contract.Invariant",

+ 9 - 0
mono/metadata/ChangeLog

@@ -1,9 +1,18 @@
+2010-07-23  Zoltan Varga  <[email protected]>
+
+	* file-io.c (ves_icall_System_IO_MonoIO_Read): Add a null check.
+	(ves_icall_System_IO_MonoIO_Write): Ditto.
+
+	* loader.c (mono_loader_cleanup): Delete loader_mutex, the shutdown races should
+	be fixed now.
+
 2010-07-23  Zoltan Varga  <[email protected]>
 
 	* loader.c (mono_loader_lock_if_inited): New helper function which can be called
 	during startup before the loader lock is initialized.
 	(mono_loader_unlock_if_inited): Ditto.
 
+
 2010-07-21  Geoff Norton  <[email protected]>
 
 	* sgen-archdep.h: Fix the build on amd64-darwin.

+ 4 - 0
mono/metadata/file-io.c

@@ -818,6 +818,8 @@ ves_icall_System_IO_MonoIO_Read (HANDLE handle, MonoArray *dest,
 	MONO_ARCH_SAVE_REGS;
 
 	*error=ERROR_SUCCESS;
+
+	MONO_CHECK_ARG_NULL (dest);
 	
 	if (dest_offset + count > mono_array_length (dest))
 		return 0;
@@ -845,6 +847,8 @@ ves_icall_System_IO_MonoIO_Write (HANDLE handle, MonoArray *src,
 	MONO_ARCH_SAVE_REGS;
 
 	*error=ERROR_SUCCESS;
+
+	MONO_CHECK_ARG_NULL (src);
 	
 	if (src_offset + count > mono_array_length (src))
 		return 0;

+ 1 - 1
mono/metadata/loader.c

@@ -98,7 +98,7 @@ mono_loader_cleanup (void)
 	TlsFree (loader_error_thread_id);
 	TlsFree (loader_lock_nest_id);
 
-	/*DeleteCriticalSection (&loader_mutex);*/
+	DeleteCriticalSection (&loader_mutex);
 	loader_lock_inited = FALSE;
 }