Fix issue 1665: prevent sending null error message
This commit is contained in:
parent
d918d527bd
commit
81baacd641
9 changed files with 28 additions and 28 deletions
|
@ -18,13 +18,13 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Equals(local.CompilerOptions, remote.CompilerOptions);
|
Equals(local.CompilerOptions, remote.CompilerOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectContextSnapshot local)
|
protected override void SendPayload(ProjectContextSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new CompilationOptionsMessage
|
send(new CompilationOptionsMessage
|
||||||
{
|
{
|
||||||
Framework = local.TargetFramework.ToPayload(),
|
Framework = local.TargetFramework.ToPayload(),
|
||||||
Options = local.CompilerOptions
|
Options = local.CompilerOptions
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
||||||
|
|
|
@ -22,14 +22,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Enumerable.SequenceEqual(local.Dependencies, remote.Dependencies);
|
Enumerable.SequenceEqual(local.Dependencies, remote.Dependencies);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectContextSnapshot local)
|
protected override void SendPayload(ProjectContextSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new DependenciesMessage
|
send(new DependenciesMessage
|
||||||
{
|
{
|
||||||
Framework = local.TargetFramework.ToPayload(),
|
Framework = local.TargetFramework.ToPayload(),
|
||||||
RootDependency = local.RootDependency,
|
RootDependency = local.RootDependency,
|
||||||
Dependencies = local.Dependencies
|
Dependencies = local.Dependencies
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
||||||
|
|
|
@ -19,11 +19,11 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Enumerable.SequenceEqual(local.DependencyDiagnostics, remote.DependencyDiagnostics);
|
Enumerable.SequenceEqual(local.DependencyDiagnostics, remote.DependencyDiagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectContextSnapshot local)
|
protected override void SendPayload(ProjectContextSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new DiagnosticsListMessage(
|
send(new DiagnosticsListMessage(
|
||||||
local.DependencyDiagnostics,
|
local.DependencyDiagnostics,
|
||||||
local.TargetFramework?.ToPayload());
|
local.TargetFramework?.ToPayload()));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
||||||
|
|
|
@ -16,9 +16,12 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
return remote != null && Equals(local.GlobalErrorMessage, remote.GlobalErrorMessage);
|
return remote != null && Equals(local.GlobalErrorMessage, remote.GlobalErrorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectSnapshot local)
|
protected override void SendPayload(ProjectSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return local.GlobalErrorMessage;
|
if (local.GlobalErrorMessage != null)
|
||||||
|
{
|
||||||
|
send(local.GlobalErrorMessage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
||||||
|
|
|
@ -22,16 +22,13 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
{
|
{
|
||||||
if (!CheckDifference(local, remote))
|
if (!CheckDifference(local, remote))
|
||||||
{
|
{
|
||||||
var payload = CreatePayload(local);
|
SendPayload(local, payload => _transmit(MessageType, payload));
|
||||||
|
|
||||||
_transmit(MessageType, payload);
|
|
||||||
|
|
||||||
SetValue(local, remote);
|
SetValue(local, remote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void SetValue(T local, T remote);
|
protected abstract void SetValue(T local, T remote);
|
||||||
protected abstract object CreatePayload(T local);
|
protected abstract void SendPayload(T local, Action<object> send);
|
||||||
protected abstract bool CheckDifference(T local, T remote);
|
protected abstract bool CheckDifference(T local, T remote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Enumerable.SequenceEqual(local.ProjectDiagnostics, remote.ProjectDiagnostics);
|
Enumerable.SequenceEqual(local.ProjectDiagnostics, remote.ProjectDiagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectSnapshot local)
|
protected override void SendPayload(ProjectSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new DiagnosticsListMessage(local.ProjectDiagnostics);
|
send(new DiagnosticsListMessage(local.ProjectDiagnostics));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
||||||
|
|
|
@ -20,15 +20,15 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
string.Equals(local.Project.Name, remote.Project.Name) &&
|
string.Equals(local.Project.Name, remote.Project.Name) &&
|
||||||
string.Equals(local.GlobalJsonPath, remote.GlobalJsonPath) &&
|
string.Equals(local.GlobalJsonPath, remote.GlobalJsonPath) &&
|
||||||
Enumerable.SequenceEqual(local.Project.GetTargetFrameworks().Select(f => f.FrameworkName),
|
Enumerable.SequenceEqual(local.Project.GetTargetFrameworks().Select(f => f.FrameworkName),
|
||||||
remote.Project.GetTargetFrameworks().Select(f => f.FrameworkName)) &&
|
remote.Project.GetTargetFrameworks().Select(f => f.FrameworkName)) &&
|
||||||
Enumerable.SequenceEqual(local.Project.GetConfigurations(), remote.Project.GetConfigurations()) &&
|
Enumerable.SequenceEqual(local.Project.GetConfigurations(), remote.Project.GetConfigurations()) &&
|
||||||
Enumerable.SequenceEqual(local.Project.Commands, remote.Project.Commands) &&
|
Enumerable.SequenceEqual(local.Project.Commands, remote.Project.Commands) &&
|
||||||
Enumerable.SequenceEqual(local.ProjectSearchPaths, remote.ProjectSearchPaths);
|
Enumerable.SequenceEqual(local.ProjectSearchPaths, remote.ProjectSearchPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectSnapshot local)
|
protected override void SendPayload(ProjectSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new ProjectInformationMessage(local.Project, local.GlobalJsonPath, local.ProjectSearchPaths);
|
send(new ProjectInformationMessage(local.Project, local.GlobalJsonPath, local.ProjectSearchPaths));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
protected override void SetValue(ProjectSnapshot local, ProjectSnapshot remote)
|
||||||
|
|
|
@ -22,14 +22,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Enumerable.SequenceEqual(local.ProjectReferences, remote.ProjectReferences);
|
Enumerable.SequenceEqual(local.ProjectReferences, remote.ProjectReferences);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectContextSnapshot local)
|
protected override void SendPayload(ProjectContextSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new ReferencesMessage
|
send(new ReferencesMessage
|
||||||
{
|
{
|
||||||
Framework = local.TargetFramework.ToPayload(),
|
Framework = local.TargetFramework.ToPayload(),
|
||||||
ProjectReferences = local.ProjectReferences,
|
ProjectReferences = local.ProjectReferences,
|
||||||
FileReferences = local.FileReferences
|
FileReferences = local.FileReferences
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
||||||
|
|
|
@ -20,14 +20,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
|
||||||
Enumerable.SequenceEqual(local.SourceFiles, remote.SourceFiles);
|
Enumerable.SequenceEqual(local.SourceFiles, remote.SourceFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override object CreatePayload(ProjectContextSnapshot local)
|
protected override void SendPayload(ProjectContextSnapshot local, Action<object> send)
|
||||||
{
|
{
|
||||||
return new SourcesMessage
|
send(new SourcesMessage
|
||||||
{
|
{
|
||||||
Framework = local.TargetFramework.ToPayload(),
|
Framework = local.TargetFramework.ToPayload(),
|
||||||
Files = local.SourceFiles,
|
Files = local.SourceFiles,
|
||||||
GeneratedFiles = new Dictionary<string, string>()
|
GeneratedFiles = new Dictionary<string, string>()
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue