From 50a05df72162fa82087096edb2215a68551801af Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 Mar 2016 11:58:55 -0800 Subject: [PATCH] fix asset loading with error changes --- assignment-client/src/assets/AssetServer.cpp | 2 +- libraries/networking/src/AssetRequest.cpp | 4 +-- .../networking/src/AssetResourceRequest.cpp | 36 ++++++++----------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/assignment-client/src/assets/AssetServer.cpp b/assignment-client/src/assets/AssetServer.cpp index 08cfa1252f..962e0fc583 100644 --- a/assignment-client/src/assets/AssetServer.cpp +++ b/assignment-client/src/assets/AssetServer.cpp @@ -482,7 +482,7 @@ void AssetServer::loadMappingsFromFile() { } } - qCritical() << "Failed to read mapping file at" << mapFilePath << "- assignment with not continue."; + qCritical() << "Failed to read mapping file at" << mapFilePath << "- assignment will not continue."; setFinished(true); } else { qInfo() << "No existing mappings loaded from file since no file was found at" << mapFilePath; diff --git a/libraries/networking/src/AssetRequest.cpp b/libraries/networking/src/AssetRequest.cpp index 93b1e4e698..e40b8d2cbe 100644 --- a/libraries/networking/src/AssetRequest.cpp +++ b/libraries/networking/src/AssetRequest.cpp @@ -37,7 +37,7 @@ void AssetRequest::start() { } // in case we haven't parsed a valid hash, return an error now - if (isValidHash(_hash)) { + if (!isValidHash(_hash)) { _error = InvalidHash; _state = Finished; @@ -62,7 +62,7 @@ void AssetRequest::start() { auto assetClient = DependencyManager::get(); assetClient->getAssetInfo(_hash, [this](bool responseReceived, AssetServerError serverError, AssetInfo info) { _info = info; - + if (!responseReceived) { _error = NetworkError; } else if (serverError != AssetServerError::NoError) { diff --git a/libraries/networking/src/AssetResourceRequest.cpp b/libraries/networking/src/AssetResourceRequest.cpp index 587eca6b0b..c9063d7eae 100644 --- a/libraries/networking/src/AssetResourceRequest.cpp +++ b/libraries/networking/src/AssetResourceRequest.cpp @@ -58,15 +58,6 @@ void AssetResourceRequest::requestMappingForPath(const AssetPath& path) { auto assetClient = DependencyManager::get(); _assetMappingRequest = assetClient->createGetMappingRequest(path); - // if we get a nullptr for createGetMappingRequest assume that there is no currently available asset-server - if (!_assetMappingRequest) { - _result = ServerUnavailable; - _state = Finished; - - emit finished(); - return; - } - // make sure we'll hear about the result of the get mapping request connect(_assetMappingRequest, &GetMappingRequest::finished, this, [this, path](GetMappingRequest* request){ Q_ASSERT(_state == InProgress); @@ -80,24 +71,27 @@ void AssetResourceRequest::requestMappingForPath(const AssetPath& path) { requestHash(request->getHash()); break; - case MappingRequest::NotFound: - // no result for the mapping request, set error to not found - _result = NotFound; + default: { + switch (request->getError()) { + case MappingRequest::NotFound: + // no result for the mapping request, set error to not found + _result = NotFound; + break; + case MappingRequest::NetworkError: + // didn't hear back from the server, mark it unavailable + _result = ServerUnavailable; + break; + default: + _result = Error; + break; + } // since we've failed we know we are finished _state = Finished; emit finished(); break; - default: - // these are unexpected errors for a GetMappingRequest object - _result = Error; - - // since we've failed we know we are finished - _state = Finished; - emit finished(); - - break; + } } _assetMappingRequest->deleteLater();