reformat property,for a http header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f
for example: {“city=shanghai”:“tag”} when we run bin/pulsar-admin topics get-message-by-id
, it will throw exception, the exception is: Reason: java.util.concurrent.CompletionException: org.apache.pulsar.client.admin.internal.http.AsyncHttpConnector$RetryException: Could not complete the operation. Number of retries has been exhausted. Failed reason: a header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f: =
In master branch, in an http request:getMessageById(“/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}”), replace "X-Pulsar-PROPERTY-" + msgProperties.getKey()
with "X-Pulsar-PROPERTY"
After release-3.1.0, this feature begins to take effect.
for example, the current message's properties likes this:
"name": "James" "gender": "man" "details=man": "good at playing basketball"
old response header format:
headers: { "X-Pulsar-PROPERTY-name": "James", "X-Pulsar-PROPERTY-gender": "man", "X-Pulsar-PROPERTY-details=man": "good at playing basketball" }
but it will throw exception in the end check
new response header format:
headers: { "X-Pulsar-PROPERTY": '{"name": "James", "gender": "man", "details=man": "good at playing basketball"}' }