mirror of
https://github.com/apache/rocketmq.git
synced 2026-10-29 17:25:35 +08:00
[#1568] rocketmq need enhance stability when commitlog broken
增加非空判断,防止空指针异常,导致循环事务 check,增加test覆盖
This commit is contained in:
+3
@@ -131,6 +131,9 @@ public class TransactionalMessageBridge {
|
||||
this.brokerController.getBrokerStatsManager().incGroupGetSize(group, topic,
|
||||
getMessageResult.getBufferTotalSize());
|
||||
this.brokerController.getBrokerStatsManager().incBrokerGetNums(getMessageResult.getMessageCount());
|
||||
if ( foundList == null || foundList.size() == 0 ) {
|
||||
break;
|
||||
}
|
||||
this.brokerController.getBrokerStatsManager().recordDiskFallBehindTime(group, topic, queueId,
|
||||
this.brokerController.getMessageStore().now() - foundList.get(foundList.size() - 1)
|
||||
.getStoreTimestamp());
|
||||
|
||||
+18
@@ -167,6 +167,24 @@ public class TransactionalMessageBridgeTest {
|
||||
assertThat(messageExt).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetHalfMessageStatusFound() {
|
||||
when(messageStore
|
||||
.getMessage(anyString(), anyString(), anyInt(), anyLong(), anyInt(), ArgumentMatchers.nullable(MessageFilter.class)))
|
||||
.thenReturn(createGetMessageResult(GetMessageStatus.FOUND));
|
||||
PullResult result = transactionBridge.getHalfMessage(0, 0, 1);
|
||||
assertThat(result.getPullStatus()).isEqualTo(PullStatus.FOUND);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetHalfMessageNull() {
|
||||
when(messageStore
|
||||
.getMessage(anyString(), anyString(), anyInt(), anyLong(), anyInt(), ArgumentMatchers.nullable(MessageFilter.class)))
|
||||
.thenReturn(null);
|
||||
PullResult result = transactionBridge.getHalfMessage(0, 0, 1);
|
||||
assertThat(result.getPullStatus()).isNull();
|
||||
}
|
||||
|
||||
private GetMessageResult createGetMessageResult(GetMessageStatus status) {
|
||||
GetMessageResult getMessageResult = new GetMessageResult();
|
||||
getMessageResult.setStatus(status);
|
||||
|
||||
Reference in New Issue
Block a user