diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMClientRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMClientRequest.java index 306527f2a4fc..dc1aeac4b7bb 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMClientRequest.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMClientRequest.java @@ -34,6 +34,7 @@ import org.apache.hadoop.ozone.audit.AuditLogger; import org.apache.hadoop.ozone.audit.AuditMessage; import org.apache.hadoop.ozone.om.OzoneManager; +import org.apache.hadoop.ozone.om.exceptions.OMException; import org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerDoubleBufferHelper; import org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerRatisUtils; import org.apache.hadoop.ozone.om.response.OMClientResponse; @@ -180,13 +181,22 @@ protected OMResponse createErrorOMResponse( @Nonnull OMResponse.Builder omResponse, @Nonnull IOException ex) { omResponse.setSuccess(false); - if (ex.getMessage() != null) { - omResponse.setMessage(ex.getMessage()); + String errorMsg = exceptionErrorMessage(ex); + if (errorMsg != null) { + omResponse.setMessage(errorMsg); } omResponse.setStatus(OzoneManagerRatisUtils.exceptionToResponseStatus(ex)); return omResponse.build(); } + private String exceptionErrorMessage(IOException ex) { + if (ex instanceof OMException) { + return ex.getMessage(); + } else { + return org.apache.hadoop.util.StringUtils.stringifyException(ex); + } + } + /** * Log the auditMessage. * @param auditLogger