From f17d8e36837cf82efc5d8364992718342085a17b Mon Sep 17 00:00:00 2001 From: Nicola Fulvio Calabria <nicola.calabria@inaf.it> Date: Thu, 8 Apr 2021 10:27:55 +0200 Subject: [PATCH] Task #3637 - Added Fault management for transfer services up to 3/6 redmine subtasks --- .../exception/DuplicateNodeException.java | 6 +++-- .../exception/InternalFaultException.java | 9 +++++--- .../exception/InvalidURIException.java | 12 ++++++---- .../vospace/exception/NodeBusyException.java | 12 ++++++++++ .../exception/NodeNotFoundException.java | 6 +++-- .../exception/PermissionDeniedException.java | 6 +++-- .../ProtocolNotSupportedException.java | 12 ++++++++++ .../VoSpaceErrorSummarizableException.java | 23 +++++++++++++++++++ 8 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java create mode 100644 src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java create mode 100644 src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java diff --git a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java index a64223e..0b09d37 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/DuplicateNodeException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.CONFLICT) -public class DuplicateNodeException extends VoSpaceException { +public class DuplicateNodeException extends VoSpaceErrorSummarizableException { public DuplicateNodeException(String path) { - super("Duplicate Node at path: " + path); + super("Duplicate Node at path: " + path, + ErrorSummaryFactory.VOSpaceFault.DUPLICATE_NODE); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java index 635bf57..05d702e 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/InternalFaultException.java @@ -1,21 +1,24 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) // Status code 500 -public class InternalFaultException extends VoSpaceException { +public class InternalFaultException extends VoSpaceErrorSummarizableException { private static final Logger LOG = LoggerFactory.getLogger(InternalFaultException.class); public InternalFaultException(String msg) { - super("InternalFaultException: " + msg); + super("InternalFaultException: " + msg, + ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT); } public InternalFaultException(Throwable cause) { - super("InternalFaultException: " + getMessage(cause)); + super("InternalFaultException: " + getMessage(cause), + ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT); } private static String getMessage(Throwable cause) { diff --git a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java index 085d102..e91e3f5 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/InvalidURIException.java @@ -1,21 +1,25 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.BAD_REQUEST) -public class InvalidURIException extends VoSpaceException { +public class InvalidURIException extends VoSpaceErrorSummarizableException { public InvalidURIException(String URI, String path) { super("InvalidURI. Payload node URI: " + URI - + " is not consistent with request path: " + path); + + " is not consistent with request path: " + path, + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } public InvalidURIException(String URI) { - super("InvalidURI. URI: " + URI + " is not in a valid format"); + super("InvalidURI. URI: " + URI + " is not in a valid format", + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } public InvalidURIException(IllegalArgumentException ex) { - super("InvalidURI. " + ex.getMessage()); + super("InvalidURI. " + ex.getMessage(), + ErrorSummaryFactory.VOSpaceFault.INVALID_URI); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java new file mode 100644 index 0000000..2586ac6 --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/NodeBusyException.java @@ -0,0 +1,12 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; + +public class NodeBusyException extends VoSpaceErrorSummarizableException { + + public NodeBusyException(String path) { + super("Node Busy: at path " + path, + ErrorSummaryFactory.VOSpaceFault.NODE_BUSY); + } + +} diff --git a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java index b14f4c2..a7bb797 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/NodeNotFoundException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.NOT_FOUND) -public class NodeNotFoundException extends VoSpaceException { +public class NodeNotFoundException extends VoSpaceErrorSummarizableException { public NodeNotFoundException(String path) { - super("NodeNotFound: " + path); + super("NodeNotFound: " + path, + ErrorSummaryFactory.VOSpaceFault.NODE_NOT_FOUND); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java index 20a1991..31194db 100644 --- a/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java +++ b/src/main/java/it/inaf/oats/vospace/exception/PermissionDeniedException.java @@ -1,12 +1,14 @@ package it.inaf.oats.vospace.exception; +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.FORBIDDEN) -public class PermissionDeniedException extends VoSpaceException { +public class PermissionDeniedException extends VoSpaceErrorSummarizableException { public PermissionDeniedException(String path) { - super("Permission Denied at path: " + path); + super("Permission Denied at path: " + path, + ErrorSummaryFactory.VOSpaceFault.PERMISSION_DENIED); } } diff --git a/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java new file mode 100644 index 0000000..d13d941 --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/ProtocolNotSupportedException.java @@ -0,0 +1,12 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; + +public class ProtocolNotSupportedException extends VoSpaceErrorSummarizableException{ + + public ProtocolNotSupportedException(String protocol) { + super("Protocol Not Supported: " + protocol, + ErrorSummaryFactory.VOSpaceFault.PROTOCOL_NOT_SUPPORTED); + } + +} diff --git a/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java new file mode 100644 index 0000000..caed42e --- /dev/null +++ b/src/main/java/it/inaf/oats/vospace/exception/VoSpaceErrorSummarizableException.java @@ -0,0 +1,23 @@ +package it.inaf.oats.vospace.exception; + +import net.ivoa.xml.uws.v1.ErrorSummaryFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) +public class VoSpaceErrorSummarizableException extends VoSpaceException { + + ErrorSummaryFactory.VOSpaceFault fault; + + public VoSpaceErrorSummarizableException(String message, + ErrorSummaryFactory.VOSpaceFault fault) + { + super(message); + this.fault = fault; + } + + public ErrorSummaryFactory.VOSpaceFault getFault() + { + return this.fault; + } +} -- GitLab