NS2.0 Prepare FileNotFoundException for move to shared partition. (dotnet/coreclr...
authorAtsushi Kanamori <AtsushiKan@users.noreply.github.com>
Fri, 7 Apr 2017 02:33:50 +0000 (19:33 -0700)
committerJan Kotas <jkotas@microsoft.com>
Fri, 7 Apr 2017 02:33:50 +0000 (19:33 -0700)
* String->string - get rid of the big comment block.

* Fields into autoprops.

* FullName => ToString() to avoid MME problems on N.

* Remove SecurityException guard around FusionLog

* Split off the parts we don't want to share.

Commit migrated from https://github.com/dotnet/coreclr/commit/6da9d0114cd1679cf171befef31d28f0553b74a1

src/coreclr/src/mscorlib/System.Private.CoreLib.csproj
src/coreclr/src/mscorlib/src/System/IO/FileNotFoundException.CoreCLR.cs [new file with mode: 0644]
src/coreclr/src/mscorlib/src/System/IO/FileNotFoundException.cs

index e98a96b..e0d8504 100644 (file)
     <Compile Include="$(BclSourcesRoot)\System\IO\FileLoadException.CoreCLR.cs" />
     <Compile Include="$(BclSourcesRoot)\System\IO\FileMode.cs" />
     <Compile Include="$(BclSourcesRoot)\System\IO\FileNotFoundException.cs" />
+    <Compile Include="$(BclSourcesRoot)\System\IO\FileNotFoundException.CoreCLR.cs" />
     <Compile Include="$(BclSourcesRoot)\System\IO\FileOptions.cs" />
     <Compile Include="$(BclSourcesRoot)\System\IO\FileShare.cs" />
     <Compile Include="$(BclSourcesRoot)\System\IO\FileSystemEnumerable.cs" Condition="'$(TargetsUnix)' == 'true'" />
diff --git a/src/coreclr/src/mscorlib/src/System/IO/FileNotFoundException.CoreCLR.cs b/src/coreclr/src/mscorlib/src/System/IO/FileNotFoundException.CoreCLR.cs
new file mode 100644 (file)
index 0000000..dbcc690
--- /dev/null
@@ -0,0 +1,20 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+namespace System.IO
+{
+    public partial class FileNotFoundException
+    {
+        // Do not delete: this is invoked from native code.
+        private FileNotFoundException(string fileName, string fusionLog, int hResult)
+            : base(null)
+        {
+            SetErrorCode(hResult);
+            FileName = fileName;
+            FusionLog = fusionLog;
+            SetMessageField();
+        }
+    }
+}
+
index 987aaa9..6f2d1c7 100644 (file)
@@ -2,64 +2,47 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-/*============================================================
-**
-** 
-** 
-** 
-**
-**
-** Purpose: Exception for accessing a file that doesn't exist.
-**
-**
-===========================================================*/
-
-using System;
 using System.Runtime.Serialization;
-using SecurityException = System.Security.SecurityException;
-using System.Globalization;
 
 namespace System.IO
 {
     // Thrown when trying to access a file that doesn't exist on disk.
     [Serializable]
-    public class FileNotFoundException : IOException
+    public partial class FileNotFoundException : IOException
     {
-        private String _fileName;  // The name of the file that isn't found.
-        private String _fusionLog;  // fusion log (when applicable)
-
         public FileNotFoundException()
             : base(SR.IO_FileNotFound)
         {
             SetErrorCode(__HResults.COR_E_FILENOTFOUND);
         }
 
-        public FileNotFoundException(String message)
+        public FileNotFoundException(string message)
             : base(message)
         {
             SetErrorCode(__HResults.COR_E_FILENOTFOUND);
         }
 
-        public FileNotFoundException(String message, Exception innerException)
+        public FileNotFoundException(string message, Exception innerException)
             : base(message, innerException)
         {
             SetErrorCode(__HResults.COR_E_FILENOTFOUND);
         }
 
-        public FileNotFoundException(String message, String fileName) : base(message)
+        public FileNotFoundException(string message, string fileName) 
+            : base(message)
         {
             SetErrorCode(__HResults.COR_E_FILENOTFOUND);
-            _fileName = fileName;
+            FileName = fileName;
         }
 
-        public FileNotFoundException(String message, String fileName, Exception innerException)
+        public FileNotFoundException(string message, string fileName, Exception innerException)
             : base(message, innerException)
         {
             SetErrorCode(__HResults.COR_E_FILENOTFOUND);
-            _fileName = fileName;
+            FileName = fileName;
         }
 
-        public override String Message
+        public override string Message
         {
             get
             {
@@ -72,26 +55,24 @@ namespace System.IO
         {
             if (_message == null)
             {
-                if ((_fileName == null) &&
+                if ((FileName == null) &&
                     (HResult == System.__HResults.COR_E_EXCEPTION))
                     _message = SR.IO_FileNotFound;
 
-                else if (_fileName != null)
-                    _message = FileLoadException.FormatFileLoadExceptionMessage(_fileName, HResult);
+                else if (FileName != null)
+                    _message = FileLoadException.FormatFileLoadExceptionMessage(FileName, HResult);
             }
         }
 
-        public String FileName
-        {
-            get { return _fileName; }
-        }
+        public string FileName { get; }
+        public string FusionLog { get; }
 
-        public override String ToString()
+        public override string ToString()
         {
-            String s = GetType().FullName + ": " + Message;
+            string s = GetType().ToString() + ": " + Message;
 
-            if (_fileName != null && _fileName.Length != 0)
-                s += Environment.NewLine + SR.Format(SR.IO_FileName_Name, _fileName);
+            if (FileName != null && FileName.Length != 0)
+                s += Environment.NewLine + SR.Format(SR.IO_FileName_Name, FileName);
 
             if (InnerException != null)
                 s = s + " ---> " + InnerException.ToString();
@@ -99,50 +80,24 @@ namespace System.IO
             if (StackTrace != null)
                 s += Environment.NewLine + StackTrace;
 
-            try
-            {
-                if (FusionLog != null)
-                {
-                    if (s == null)
-                        s = " ";
-                    s += Environment.NewLine;
-                    s += Environment.NewLine;
-                    s += FusionLog;
-                }
-            }
-            catch (SecurityException)
+            if (FusionLog != null)
             {
+                if (s == null)
+                    s = " ";
+                s += Environment.NewLine;
+                s += Environment.NewLine;
+                s += FusionLog;
             }
             return s;
         }
 
-        protected FileNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context)
+        protected FileNotFoundException(SerializationInfo info, StreamingContext context)
+            : base(info, context)
         {
             // Base class constructor will check info != null.
 
-            _fileName = info.GetString("FileNotFound_FileName");
-            try
-            {
-                _fusionLog = info.GetString("FileNotFound_FusionLog");
-            }
-            catch
-            {
-                _fusionLog = null;
-            }
-        }
-
-        private FileNotFoundException(String fileName, String fusionLog, int hResult)
-            : base(null)
-        {
-            SetErrorCode(hResult);
-            _fileName = fileName;
-            _fusionLog = fusionLog;
-            SetMessageField();
-        }
-
-        public String FusionLog
-        {
-            get { return _fusionLog; }
+            FileName = info.GetString("FileNotFound_FileName");
+            FusionLog = info.GetString("FileNotFound_FusionLog");
         }
 
         public override void GetObjectData(SerializationInfo info, StreamingContext context)
@@ -151,15 +106,8 @@ namespace System.IO
             base.GetObjectData(info, context);
 
             // Serialize data for this class
-            info.AddValue("FileNotFound_FileName", _fileName, typeof(String));
-
-            try
-            {
-                info.AddValue("FileNotFound_FusionLog", FusionLog, typeof(String));
-            }
-            catch (SecurityException)
-            {
-            }
+            info.AddValue("FileNotFound_FileName", FileName, typeof(string));
+            info.AddValue("FileNotFound_FusionLog", FusionLog, typeof(string));
         }
     }
 }