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"}'
}
- Mailing List discussion thread: https://lists.apache.org/thread/vfc99mbj2z2xgwfs1hq1zxrow13qm2n7
- Mailing List voting thread: https://lists.apache.org/thread/g354684m9h495o3p0kmzb7fh7vfxhddx