   (if ((:short-circuitable? messenger) channel) 
     (retry-message-short-circuit (short-circuit-ch messenger peer-id :retry-ch) id)
     (let [idle-strategy (:send-idle-strategy messenger)
-          pub ^uk.co.real_logic.aeron.Publication (get-publication messenger channel)
+          pub ^Publication (get-publication messenger channel)
           unsafe-buffer (protocol/build-retry-msg-buf peer-id id)
           offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/retry-msg-length))]
       (while (neg? ^long (offer-f))

  [messenger event {:keys [peer-id channel]} batch]
  (if ((:short-circuitable? messenger) channel) 
    (send-messages-short-circuit (short-circuit-ch messenger peer-id :inbound-ch) batch)
    (let [pub ^uk.co.real_logic.aeron.Publication (get-publication messenger channel)
          [len unsafe-buffer] (protocol/build-messages-msg-buf (:compress-f messenger) peer-id batch)
          offer-f (fn [] (.offer pub unsafe-buffer 0 len))
          idle-strategy (:send-idle-strategy messenger)]

        (let [fragments-read (.poll ^uk.co.real_logic.aeron.Subscription subscription ^FragmentHandler handler ^int limit)]
          (.idle idle-strategy fragments-read))))))

(defn handle-message [decompress-f virtual-peers buffer offset length header]
  (let [msg-type (protocol/read-message-type buffer offset)
        offset-rest (inc ^long offset)] 
