refs #815 Catch and handle CJsonException when calling convertFromJson.

This commit is contained in:
Mathew Sutcliffe
2016-12-21 02:27:21 +00:00
parent 4f6d3ed3a3
commit 51c3ae8c25
8 changed files with 65 additions and 18 deletions

View File

@@ -1148,16 +1148,25 @@ namespace BlackCore
if (!simAircraft.isPartsSynchronized() && !isFull) { return; }
CAircraftParts parts;
if (isFull)
try
{
parts.convertFromJson(jsonObject);
if (isFull)
{
parts.convertFromJson(jsonObject);
}
else
{
// incremental update
parts = this->remoteAircraftParts(callsign).frontOrDefault();
QJsonObject config = applyIncrementalObject(parts.toJson(), jsonObject);
parts.convertFromJson(config);
}
}
else
catch (const CJsonException &ex)
{
// incremental update
parts = this->remoteAircraftParts(callsign).frontOrDefault();
QJsonObject config = applyIncrementalObject(parts.toJson(), jsonObject);
parts.convertFromJson(config);
CStatusMessage message = ex.toStatusMessage(this, "Invalid parts packet");
message.setSeverity(CStatusMessage::SeverityDebug);
CLogMessage::preformatted(message);
}
// make sure in any case right time