From ad01fc9b8787d2653412795ba957c1ebc6960266 Mon Sep 17 00:00:00 2001 From: Rui Fu Date: Tue, 6 Jul 2021 11:17:08 +0800 Subject: [PATCH] fix deserializeBrokerEntryMetaDataFirst not found (#11220) ### Motivation #11014 introduced `getEntryTimestamp` and removed `deserializeBrokerEntryMetaDataFirst`, but #11139 is still using `deserializeBrokerEntryMetaDataFirst`, and it breaks master branch. ### Modifications use `entryTimestamp` for expiry checking in `internalGetMessageIdByTimestamp` ### Verifying this change - [x] Make sure that the change passes the CI checks. --- .../pulsar/broker/admin/impl/PersistentTopicsBase.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java index f8738ecd4bd86..d85ea534f2e60 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java @@ -2355,17 +2355,13 @@ protected CompletableFuture internalGetMessageIdByTimestamp(long time ManagedLedger ledger = ((PersistentTopic) topic).getManagedLedger(); return ledger.asyncFindPosition(entry -> { - MessageImpl msg = null; try { - msg = MessageImpl.deserializeBrokerEntryMetaDataFirst(entry.getDataBuffer()); - return msg.publishedEarlierThan(timestamp); + long entryTimestamp = MessageImpl.getEntryTimestamp(entry.getDataBuffer()); + return MessageImpl.isEntryPublishedEarlierThan(entryTimestamp, timestamp); } catch (Exception e) { log.error("[{}] Error deserializing message for message position find", topicName, e); } finally { entry.release(); - if (msg != null) { - msg.recycle(); - } } return false; }).thenApply(position -> {