Siddhant Sangwan created HDDS-11848:
---------------------------------------

             Summary: Serialisation bug in Recon's listKeys API
                 Key: HDDS-11848
                 URL: https://issues.apache.org/jira/browse/HDDS-11848
             Project: Apache Ozone
          Issue Type: Bug
          Components: Ozone Recon
            Reporter: Siddhant Sangwan
            Assignee: Siddhant Sangwan


The listKeys API returns an error response when the /api/v1/keys/listKeys 
endpoint on port 9888 is used.

To reproduce, create a volume, bucket, and key:
{code}
$ ozone sh key list /vol1/bucket2
[ {
  "volumeName" : "vol1",
  "bucketName" : "bucket2",
  "name" : "key",
  "owner" : "hadoop",
  "dataSize" : 4068,
  "creationTime" : "2024-12-03T10:04:58.063Z",
  "modificationTime" : "2024-12-03T10:04:58.629Z",
  "replicationConfig" : {
    "replicationFactor" : "ONE",
    "requiredNodes" : 1,
    "minimumNodes" : 1,
    "replicationType" : "RATIS"
  },
  "metadata" : { },
  "tags" : { },
  "file" : true
} ]
{code}

and call
{code}
http://localhost:9888/api/v1/keys/listKeys?startPrefix=/vol1/bucket2&limit=1000
{code}

This will return an error:
{code}
Conflicting/ambiguous property name definitions (implicit name 'key'): found 
multiple explicit names: [key, isKey], but also implicit accessor: [method 
org.apache.hadoop.ozone.recon.api.types.KeyEntityInfoProtoWrapper#setKey(java.lang.String)][visible=true,ignore=false,explicitName=false]
 (through reference chain: 
org.apache.hadoop.ozone.recon.api.types.ListKeysResponse["keys"])
{code}

KeyEntityInfoProtoWrapper has two fields, key and isKey. isKey has a 
corresponding getter called isKey(). Jackson finds these three ambiguous, even 
though they're annotated. The fix is to change isKey() to getIsKey().



--
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