This is an automated email from the ASF dual-hosted git repository. markusthoemmes pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git
The following commit(s) were added to refs/heads/master by this push: new 6f4d185 Adjust error handling in the Cloudant Rest Store (#4325) 6f4d185 is described below commit 6f4d1854813f2cc6e39d16dc7b1e9525f7b5e20e Author: Martin Henke <martin.he...@de.ibm.com> AuthorDate: Thu May 9 07:28:08 2019 +0200 Adjust error handling in the Cloudant Rest Store (#4325) * correct inconsistent error handling in the couchdb rest store * remove duplicate metrics by making exceptions distinguishable --- .../core/database/ArtifactStoreExceptions.scala | 6 ++++++ .../openwhisk/core/database/CouchDbRestStore.scala | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactStoreExceptions.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactStoreExceptions.scala index fb6a072..701ff84 100644 --- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactStoreExceptions.scala +++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactStoreExceptions.scala @@ -27,8 +27,14 @@ case class DocumentTypeMismatchException(message: String) extends ArtifactStoreE case class DocumentUnreadable(message: String) extends ArtifactStoreException(message) +case class GetException(message: String) extends ArtifactStoreException(message) + case class PutException(message: String) extends ArtifactStoreException(message) +case class DeleteException(message: String) extends ArtifactStoreException(message) + +case class QueryException(message: String) extends ArtifactStoreException(message) + sealed abstract class ArtifactStoreRuntimeException(message: String) extends RuntimeException(message) case class UnsupportedQueryKeys(message: String) extends ArtifactStoreRuntimeException(message) diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala index 4707781..774cf2e 100644 --- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala +++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala @@ -129,7 +129,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St start, s"[PUT] '$dbName' failed to put document: '${docinfoStr}'; http status: '${code}'", ErrorLevel) - throw new Exception("Unexpected http response code: " + code) + throw new PutException("Unexpected http response code: " + code) } } @@ -164,7 +164,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St case Left(code) => transid.failed(this, start, s"'$dbName' failed to put documents, http status: '${code}'", ErrorLevel) - throw new Exception("Unexpected http response code: " + code) + throw new PutException("Unexpected http response code: " + code) } } @@ -200,7 +200,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St start, s"[DEL] '$dbName' failed to delete document: '${doc}'; http status: '${code}'", ErrorLevel) - throw new Exception("Unexpected http response code: " + code) + throw new DeleteException("Unexpected http response code: " + code) } } @@ -240,8 +240,8 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St throw NoDocumentException("not found on 'get'") case Left(code) => - transid.finished(this, start, s"[GET] '$dbName' failed to get document: '${doc}'; http status: '${code}'") - throw new Exception("Unexpected http response code: " + code) + transid.failed(this, start, s"[GET] '$dbName' failed to get document: '${doc}'; http status: '${code}'") + throw new GetException("Unexpected http response code: " + code) } } recoverWith { case e: DeserializationException => throw DocumentUnreadable(Messages.corruptedEntity) @@ -310,7 +310,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St case Left(code) => transid.failed(this, start, s"Unexpected http response code: $code", ErrorLevel) - throw new Exception("Unexpected http response code: " + code) + throw new QueryException("Unexpected http response code: " + code) } reportFailure( @@ -344,7 +344,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St case Left(code) => transid.failed(this, start, s"Unexpected http response code: $code", ErrorLevel) - throw new Exception("Unexpected http response code: " + code) + throw new QueryException("Unexpected http response code: " + code) } reportFailure( @@ -431,7 +431,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St this, start, s"[ATT_PUT] '$dbName' failed to upload attachment '$name' of document '$doc'; http status '$code'") - throw new Exception("Unexpected http response code: " + code) + throw new PutException("Unexpected http response code: " + code) } } @@ -495,7 +495,7 @@ class CouchDbRestStore[DocumentAbstraction <: DocumentSerializer](dbProtocol: St this, start, s"[ATT_GET] '$dbName' failed to get attachment '$name' of document '$doc'; http status: '$code'") - throw new Exception("Unexpected http response code: " + code) + throw new GetException("Unexpected http response code: " + code) } reportFailure(