T returnNotNullEntity(T entity, String entityType
return entity;
}
+ /**
+ * Checks id the given {@link Storable} is {@code null}.
+ *
+ * Similar to {@link #returnNotNullEntity(KapuaEntity, String, KapuaId)} but for {@link Storable}s.
+ *
+ * @param storable The {@link Storable} to check.
+ * @param storableType The {@link Storable#getType()}
+ * @param storableId The {@link StorableId}
+ * @return The given {@link Storable} if not {@code null}
+ * @param The type of the {@link Storable}.
+ * @throws StorableNotFoundException if given {@link Storable} is {@code null}.
+ * @since 2.0.0
+ */
+ public T returnNotNullStorable(T storable, String storableType, StorableId storableId) throws StorableNotFoundException {
+ if (storable == null) {
+ throw new StorableNotFoundException(storableType, storableId);
+ }
+
+ return storable;
+ }
+
/**
* Builds a 200 HTTP Response.
*
diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataChannels.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataChannels.java
index dcd7bd12cba..6150b2c7ef8 100644
--- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataChannels.java
+++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataChannels.java
@@ -191,6 +191,6 @@ public ChannelInfo find(@PathParam("scopeId") ScopeId scopeId,
throws KapuaException {
ChannelInfo channelInfo = channelInfoRegistryService.find(scopeId, channelInfoId);
- return returnNotNullEntity(channelInfo);
+ return returnNotNullStorable(channelInfo, ChannelInfo.TYPE, channelInfoId);
}
}
diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataClients.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataClients.java
index 04cc47abf10..64c63cd1974 100644
--- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataClients.java
+++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataClients.java
@@ -170,6 +170,6 @@ public ClientInfo find(@PathParam("scopeId") ScopeId scopeId,
throws KapuaException {
ClientInfo clientInfo = clientInfoRegistryService.find(scopeId, clientInfoId);
- return returnNotNullEntity(clientInfo);
+ return returnNotNullStorable(clientInfo, ClientInfo.TYPE, clientInfoId);
}
}
diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessages.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessages.java
index 99ca6fb94b2..0627364438d 100644
--- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessages.java
+++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessages.java
@@ -204,7 +204,7 @@ public DatastoreMessage find(@PathParam("scopeId") ScopeId scopeId,
throws KapuaException {
DatastoreMessage datastoreMessage = messageStoreService.find(scopeId, datastoreMessageId, StorableFetchStyle.SOURCE_FULL);
- return returnNotNullEntity(datastoreMessage);
+ return returnNotNullStorable(datastoreMessage, DatastoreMessage.TYPE, datastoreMessageId);
}
//TODO: move this logic within the service, or at least in a collaborator shared with DataMessagesJson
diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessagesJson.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessagesJson.java
index e27df7455d7..a0308b9aa6c 100644
--- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessagesJson.java
+++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMessagesJson.java
@@ -221,11 +221,11 @@ public JsonMessageListResult queryJson(@PathParam("scopeId") ScopeId scopeId,
public JsonDatastoreMessage findJson(@PathParam("scopeId") ScopeId scopeId,
@PathParam("datastoreMessageId") StorableEntityId datastoreMessageId)
throws KapuaException {
- DatastoreMessage datastoreMessage = returnNotNullEntity(messageStoreService.find(scopeId, datastoreMessageId, StorableFetchStyle.SOURCE_FULL));
+ DatastoreMessage datastoreMessage = returnNotNullStorable(messageStoreService.find(scopeId, datastoreMessageId, StorableFetchStyle.SOURCE_FULL), DatastoreMessage.TYPE, datastoreMessageId);
JsonDatastoreMessage jsonDatastoreMessage = new JsonDatastoreMessage(datastoreMessage);
- return returnNotNullEntity(jsonDatastoreMessage);
+ return returnNotNullStorable(jsonDatastoreMessage, DatastoreMessage.TYPE, datastoreMessageId);
}
private MessageQuery convertQuery(JsonMessageQuery query) {
diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMetrics.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMetrics.java
index 650b0245928..c17e92c0465 100644
--- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMetrics.java
+++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/DataMetrics.java
@@ -177,6 +177,6 @@ public MetricInfo find(@PathParam("scopeId") ScopeId scopeId,
throws KapuaException {
MetricInfo metricInfo = metricInfoRegistryService.find(scopeId, metricInfoId);
- return returnNotNullEntity(metricInfo);
+ return returnNotNullStorable(metricInfo, MetricInfo.TYPE, metricInfoId);
}
}
diff --git a/rest-api/web/src/main/java/org/eclipse/kapua/app/api/web/RestApiJAXBContextProvider.java b/rest-api/web/src/main/java/org/eclipse/kapua/app/api/web/RestApiJAXBContextProvider.java
index 2bcc3851d41..6f66b5e040d 100644
--- a/rest-api/web/src/main/java/org/eclipse/kapua/app/api/web/RestApiJAXBContextProvider.java
+++ b/rest-api/web/src/main/java/org/eclipse/kapua/app/api/web/RestApiJAXBContextProvider.java
@@ -59,6 +59,7 @@
import org.eclipse.kapua.commons.rest.model.errors.SelfManagedOnlyExceptionInfo;
import org.eclipse.kapua.commons.rest.model.errors.ServiceConfigurationLimitExceededExceptionInfo;
import org.eclipse.kapua.commons.rest.model.errors.ServiceConfigurationParentLimitExceededExceptionInfo;
+import org.eclipse.kapua.commons.rest.model.errors.StorableNotFoundExceptionInfo;
import org.eclipse.kapua.commons.rest.model.errors.SubjectUnauthorizedExceptionInfo;
import org.eclipse.kapua.commons.rest.model.errors.ThrowableInfo;
import org.eclipse.kapua.commons.service.event.store.api.EventStoreRecordCreator;
@@ -366,6 +367,7 @@ public JAXBContext getJAXBContext() throws KapuaException {
IllegalArgumentExceptionInfo.class,
IllegalNullArgumentExceptionInfo.class,
MfaRequiredExceptionInfo.class,
+ StorableNotFoundExceptionInfo.class,
// Jobs Exception Info
CleanJobDataExceptionInfo.class,