Fix issue 1665: prevent sending null error message

This commit is contained in:
Troy Dai 2016-03-02 22:53:20 -08:00
parent d918d527bd
commit 81baacd641
9 changed files with 28 additions and 28 deletions

View file

@ -18,13 +18,13 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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(),
Options = local.CompilerOptions
};
});
}
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)

View file

@ -22,14 +22,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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(),
RootDependency = local.RootDependency,
Dependencies = local.Dependencies
};
});
}
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)

View file

@ -19,11 +19,11 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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.TargetFramework?.ToPayload());
local.TargetFramework?.ToPayload()));
}
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)

View file

@ -16,9 +16,12 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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)

View file

@ -22,16 +22,13 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
{
if (!CheckDifference(local, remote))
{
var payload = CreatePayload(local);
_transmit(MessageType, payload);
SendPayload(local, payload => _transmit(MessageType, payload));
SetValue(local, remote);
}
}
protected abstract void SetValue(T local, T remote);
protected abstract object CreatePayload(T local);
protected abstract void SetValue(T local, T remote);
protected abstract void SendPayload(T local, Action<object> send);
protected abstract bool CheckDifference(T local, T remote);
}
}

View file

@ -19,9 +19,9 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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)

View file

@ -20,15 +20,15 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
string.Equals(local.Project.Name, remote.Project.Name) &&
string.Equals(local.GlobalJsonPath, remote.GlobalJsonPath) &&
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.Commands, remote.Project.Commands) &&
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)

View file

@ -22,14 +22,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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(),
ProjectReferences = local.ProjectReferences,
FileReferences = local.FileReferences
};
});
}
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)

View file

@ -20,14 +20,14 @@ namespace Microsoft.DotNet.ProjectModel.Server.Messengers
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(),
Files = local.SourceFiles,
GeneratedFiles = new Dictionary<string, string>()
};
});
}
protected override void SetValue(ProjectContextSnapshot local, ProjectContextSnapshot remote)