Duong created HDDS-8475:
---------------------------

             Summary: Unexpected IOException is returned as KEY_NOT_FOUND
                 Key: HDDS-8475
                 URL: https://issues.apache.org/jira/browse/HDDS-8475
             Project: Apache Ozone
          Issue Type: Improvement
            Reporter: Duong


{code:java}
private OmKeyInfo readKeyInfo(OmKeyArgs args) throws IOException {
  String volumeName = args.getVolumeName();
  String bucketName = args.getBucketName();
  String keyName = args.getKeyName();
  OmKeyInfo value = null;

  metadataManager.getLock().acquireReadLock(BUCKET_LOCK, volumeName,
      bucketName);
  try {
    BucketLayout bucketLayout =
        getBucketLayout(metadataManager, args.getVolumeName(),
            args.getBucketName());
    keyName = OMClientRequest
        .validateAndNormalizeKey(enableFileSystemPaths, keyName,
            bucketLayout);

    if (bucketLayout.isFileSystemOptimized()) {
      value = getOmKeyInfoFSO(volumeName, bucketName, keyName);
    } else {
      value = getOmKeyInfoDirectoryAware(volumeName, bucketName, keyName);
      if (bucketLayout.isLegacy() && value != null && !value.isFile()) {
        value = null; // Legacy buckets do not report key info for directories
      }
    }
  } catch (IOException ex) {
    if (ex instanceof OMException) {
      throw ex;
    }
    if (LOG.isDebugEnabled()) {
      LOG.debug("Get key failed for volume:{} bucket:{} key:{}", volumeName,
              bucketName, keyName, ex);
    }
    throw new OMException(ex.getMessage(), KEY_NOT_FOUND);
  } finally {
    metadataManager.getLock().releaseReadLock(BUCKET_LOCK, volumeName,
        bucketName);
  } {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to