Skip to content

Commit 5fe28a3

Browse files
authored
[tools] Fix issue when serialized json file is null (Azure#18565)
1 parent 58755ec commit 5fe28a3

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

tools/Tools.Common/Models/ModuleMetadata.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public override bool Equals(Object obj)
9999

100100
public static ModuleMetadata DeserializeCmdlets(string fileName)
101101
{
102-
return JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName));
102+
return File.Exists(fileName) ? JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName)) : null;
103103
}
104104

105105
public override int GetHashCode()

tools/VersionController/Models/VersionMetadataHelper.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ public VersionMetadataHelper(VersionFileHelper fileHelper)
5050
/// <returns></returns>
5151
private ModuleMetadata DeserializeCmdlets(string fileName)
5252
{
53-
return JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName));
53+
return File.Exists(fileName) ? JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName)) : null;
5454
}
5555

5656
/// <summary>
5757
/// Serialize the cmdlets so they can be compared to change modules later
5858
/// </summary>
5959
/// <param name="fileName">Name of the file cmdlets are being serialized to.</param>
6060
/// <param name="cmdlets">List of cmdlets that are to be serialized.</param>
61-
public static void SerializeCmdlets(string fileName, ModuleMetadata moduleMetadata)
61+
public static string SerializeCmdlets(string fileName, ModuleMetadata moduleMetadata)
6262
{
6363
string json = JsonConvert.SerializeObject(moduleMetadata, new JsonSerializerSettings
6464
{
@@ -67,6 +67,7 @@ public static void SerializeCmdlets(string fileName, ModuleMetadata moduleMetada
6767
ContractResolver = VersionMetadataContractResolver.Instance
6868
});
6969
File.WriteAllText(fileName, json);
70+
return fileName;
7071
}
7172

7273
/// <summary>
@@ -297,7 +298,8 @@ public Version GetVersionBumpUsingSerialized()
297298
Console.WriteLine($"Warning: {moduleName} does not have a previously serialized cmdlet for comparison.");
298299
Console.ForegroundColor = currentColor;
299300
var newCmdletFile = Path.Join(serializedCmdletsDirectory, serializedCmdletName);
300-
SerializeCmdlets(newCmdletFile, newModuleMetadata);
301+
// Use newly build one, only bump PATCH version
302+
serializedCmdletFile = SerializeCmdlets(newCmdletFile, newModuleMetadata);
301303
}
302304
var oldModuleMetadata = DeserializeCmdlets(serializedCmdletFile);
303305
CmdletLoader.ModuleMetadata = oldModuleMetadata;

0 commit comments

Comments
 (0)