ITaskItem.GetMetadata() implementations should not return null, but return "".
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 31 Jan 2014 08:47:02 +0000 (17:47 +0900)
committerAtsushi Eno <atsushieno@gmail.com>
Thu, 20 Feb 2014 09:23:02 +0000 (18:23 +0900)
mcs/class/Microsoft.Build/Microsoft.Build.Execution/ProjectItemInstance.cs
mcs/class/Microsoft.Build/Microsoft.Build.Internal/BuildEngine4.cs
mcs/class/Microsoft.Build/Microsoft.Build.Internal/ProjectTaskItem.cs

index 720c4b32b165710aa09f7359963358ca43a05120..dc604c87a512ace0e7349adb275de51e03e1618b 100644 (file)
@@ -72,7 +72,7 @@ namespace Microsoft.Build.Execution
                        if (wk != null)
                                return wk;
                        var m = GetMetadata (name);
-                       return m != null ? m.EvaluatedValue : null;
+                       return m != null ? m.EvaluatedValue : string.Empty;
                }
 
                public bool HasMetadata (string name)
index 1d6aaa5b76833738121455608fe81f838b05e3c6..faafd20b1c5e76c3af6429874518c40de7595cb9 100644 (file)
@@ -457,7 +457,8 @@ namespace Microsoft.Build.Internal
                                var wk = ProjectCollection.GetWellKnownMetadata (metadataName, ItemSpec, Path.GetFullPath, null);
                                if (wk != null)
                                        return wk;
-                               return (string) metadata [metadataName];
+                               var ret = (string) metadata [metadataName];
+                               return ret ?? string.Empty;
                        }
                        public void RemoveMetadata (string metadataName)
                        {
index 13ff299d7209b8397980a6a56221a80cd54fa07c..3477d043dee61f91f01ee7f15f5fd4182ad5bd6a 100644 (file)
@@ -62,7 +62,7 @@ namespace Microsoft.Build.Internal
                        if (wk != null)
                                return wk;
                        var mde = item.Metadata.FirstOrDefault (m => m.Name == metadataName);
-                       return mde != null ? mde.Value : null;
+                       return mde != null ? mde.Value : string.Empty;
                }
                void ITaskItem.RemoveMetadata (string metadataName)
                {