diff --git a/src/ziggurat/messaging/producer.clj b/src/ziggurat/messaging/producer.clj index 8684170b..3b825c98 100644 --- a/src/ziggurat/messaging/producer.clj +++ b/src/ziggurat/messaging/producer.clj @@ -51,7 +51,7 @@ (defn- record-headers->map [record-headers] (reduce (fn [header-map record-header] - (assoc header-map (.key record-header) (String. (.value record-header)))) + (assoc header-map (.key record-header) (String. (or (.value record-header) "")))) {} record-headers)) diff --git a/test/ziggurat/messaging/producer_test.clj b/test/ziggurat/messaging/producer_test.clj index c2c99ccb..a55bcae2 100644 --- a/test/ziggurat/messaging/producer_test.clj +++ b/test/ziggurat/messaging/producer_test.clj @@ -185,11 +185,12 @@ (testing "publish to delay queue publishes with parsed record headers" (fix/with-queues {:default {:handler-fn #(constantly nil)}} - (let [test-message-payload (assoc message-payload :headers (RecordHeaders. (list (RecordHeader. "key" (byte-array (map byte "value")))))) + (let [test-message-payload (assoc message-payload :headers (RecordHeaders. (list (RecordHeader. "key" (byte-array (map byte "value"))) + (RecordHeader. "nil" nil)))) expected-props {:content-type "application/octet-stream" :persistent true :expiration (str (get-in (rabbitmq-config) [:delay :queue-timeout-ms])) - :headers {"key" "value"}}] + :headers {"key" "value" "nil" ""}}] (with-redefs [lb/publish (fn [_ _ _ _ props] (is (= expected-props props))) metrics/multi-ns-report-histogram (fn [_ _ _] nil)]