Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit c256f53c authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

Pull request #41: Synchronize response error on empty payload

Merge in EDELIVERY/smp from bugfix/EDELIVERY-11681-smp-search-resources-inconsistency-when-opening-subresource-without-document to development

* commit 'a865fcd2':
  Synchronize response error on empty payload
parents b8441e89 a865fcd2
Branches EDELIVERY-12495-update-eupl-licence-for-ddc
No related tags found
No related merge requests found
......@@ -30,7 +30,7 @@ public class DocumentDao extends BaseDao<DBDocument> {
* Method returns the document for the resource
*
* @param dbResource resource
* @return
* @return document for the resource or empty if not found
*/
public Optional<DBDocument> getDocumentForResource(DBResource dbResource) {
try {
......@@ -67,7 +67,10 @@ public class DocumentDao extends BaseDao<DBDocument> {
query.setParameter(PARAM_SUBRESOURCE_ID, subresource.getId());
return Optional.of(query.getSingleResult());
} catch (NonUniqueResultException e) {
throw new SMPRuntimeException(ErrorCode.RESOURCE_DOCUMENT_ERROR, subresource.getIdentifierValue(), subresource.getIdentifierScheme(),
DBResource resource = subresource.getResource();
throw new SMPRuntimeException(ErrorCode.SUBRESOURCE_DOCUMENT_ERROR,
subresource.getIdentifierValue(), subresource.getIdentifierScheme(),
resource.getIdentifierValue(), resource.getIdentifierScheme(),
"Multiple documents for subresource");
} catch (NoResultException e) {
return Optional.empty();
......
......@@ -70,13 +70,9 @@ public enum ErrorCode {
MAIL_SUBMISSION_ERROR (500,"SMP:550",ErrorBusinessCode.TECHNICAL, "Mail submission error: %s!"),
RESOURCE_DOCUMENT_MISSING(500,"SMP:180",ErrorBusinessCode.TECHNICAL, "Empty document for the resource: [id: '%s', sch.: '%s']!"),
RESOURCE_DOCUMENT_ERROR(500,"SMP:180",ErrorBusinessCode.TECHNICAL, "Error occurred while reading the resource document: [id: '%s', sch.: '%s']! Error [%s]"),
//
RESOURCE_DOCUMENT_ERROR(500,"SMP:181",ErrorBusinessCode.TECHNICAL, "Error occurred while reading the resource document: [id: '%s', sch.: '%s']! Error [%s]"),
SUBRESOURCE_DOCUMENT_MISSING(500,"SMP:182",ErrorBusinessCode.TECHNICAL, "Empty document for the subresource: [docId: '%s', docSch.: '%s'] of the resource [id: '%s', sch.: '%s']"),
SUBRESOURCE_DOCUMENT_ERROR(500,"SMP:183",ErrorBusinessCode.TECHNICAL, "Error occurred while reading the subresource document: : [docId: '%s', docSch.: '%s'] of the resource[id: '%s', sch: '%s']! Error [%s]"),
;
private final int httpCode;
......
......@@ -105,10 +105,15 @@ public class AbstractResourceHandler {
public RequestData buildRequestDataForSubResource(DBDomain domain, DBResource resource, DBSubresource subresource) {
byte[] content = resourceStorage.getDocumentContentForSubresource(subresource);
if (content==null || content.length == 0) {
throw new SMPRuntimeException(ErrorCode.SUBRESOURCE_DOCUMENT_MISSING,
subresource.getIdentifierValue(), subresource.getIdentifierScheme(),
resource.getIdentifierValue(), resource.getIdentifierScheme());
}
return new SpiRequestData(domain.getDomainCode(),
SPIUtils.toUrlIdentifier(resource),
SPIUtils.toUrlIdentifier(subresource),
new ByteArrayInputStream(content == null?new byte[]{}:content));
new ByteArrayInputStream(content));
}
public RequestData buildRequestDataForSubResource(DBDomain domain, DBResource resource, DBSubresource subresource, InputStream inputStream) {
......@@ -124,7 +129,7 @@ public class AbstractResourceHandler {
if (StringUtils.isNotBlank(responseData.getContentType())) {
resourceResponse.setContentType(responseData.getContentType());
}
responseData.getHttpHeaders().entrySet().stream()
responseData.getHttpHeaders().entrySet()
.forEach(entry -> resourceResponse.setHttpHeader(entry.getKey(), entry.getValue()));
} catch (ResourceException e) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment