Mercurial > hg > orthanc
changeset 4614:67d112ef680f db-changes
added missing try/catch
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 12 Apr 2021 17:04:58 +0200 |
parents | 2684544ff03c |
children | b91ed9e7f43c |
files | OrthancServer/Sources/ServerIndex.cpp |
diffstat | 1 files changed, 27 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerIndex.cpp Thu Apr 08 10:46:12 2021 +0200 +++ b/OrthancServer/Sources/ServerIndex.cpp Mon Apr 12 17:04:58 2021 +0200 @@ -465,30 +465,37 @@ } } - /** - * WARNING: Don't protect the calls to "LogChange()" using - * "monitoringMutex_", as this could lead to deadlocks in - * other threads (typically, if "Store()" is being running in - * another thread, which leads to calls to "MarkAsUnstable()", - * which leads to two lockings of "monitoringMutex_"). - **/ - switch (stableResource.GetResourceType()) + try { - case ResourceType_Patient: - that->LogChange(stableId, ChangeType_StablePatient, stableResource.GetPublicId(), ResourceType_Patient); - break; - - case ResourceType_Study: - that->LogChange(stableId, ChangeType_StableStudy, stableResource.GetPublicId(), ResourceType_Study); - break; + /** + * WARNING: Don't protect the calls to "LogChange()" using + * "monitoringMutex_", as this could lead to deadlocks in + * other threads (typically, if "Store()" is being running in + * another thread, which leads to calls to "MarkAsUnstable()", + * which leads to two lockings of "monitoringMutex_"). + **/ + switch (stableResource.GetResourceType()) + { + case ResourceType_Patient: + that->LogChange(stableId, ChangeType_StablePatient, stableResource.GetPublicId(), ResourceType_Patient); + break; - case ResourceType_Series: - that->LogChange(stableId, ChangeType_StableSeries, stableResource.GetPublicId(), ResourceType_Series); - break; + case ResourceType_Study: + that->LogChange(stableId, ChangeType_StableStudy, stableResource.GetPublicId(), ResourceType_Study); + break; + + case ResourceType_Series: + that->LogChange(stableId, ChangeType_StableSeries, stableResource.GetPublicId(), ResourceType_Series); + break; - default: - throw OrthancException(ErrorCode_InternalError); + default: + throw OrthancException(ErrorCode_InternalError); + } } + catch (OrthancException& e) + { + LOG(ERROR) << "Cannot log a change about a stable resource into the database"; + } } }