|
1 | 1 | package de.azapps.kafkabackup.common.offset; |
2 | 2 |
|
3 | 3 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 4 | +import de.azapps.kafkabackup.sink.BackupSinkTask; |
4 | 5 | import org.apache.kafka.clients.admin.AdminClient; |
5 | 6 | import org.apache.kafka.clients.admin.ConsumerGroupListing; |
6 | 7 | import org.apache.kafka.clients.consumer.OffsetAndMetadata; |
7 | 8 | import org.apache.kafka.common.TopicPartition; |
8 | 9 | import org.apache.kafka.connect.errors.RetriableException; |
| 10 | +import org.slf4j.Logger; |
| 11 | +import org.slf4j.LoggerFactory; |
9 | 12 |
|
10 | 13 | import java.io.IOException; |
11 | 14 | import java.nio.file.Files; |
|
19 | 22 | import java.util.stream.Collectors; |
20 | 23 |
|
21 | 24 | public class OffsetSink { |
| 25 | + private static final Logger log = LoggerFactory.getLogger(OffsetSink.class); |
22 | 26 | private final Path targetDir; |
23 | 27 | private final Map<TopicPartition, OffsetStoreFile> topicOffsets = new HashMap<>(); |
24 | 28 | private List<String> consumerGroups = new ArrayList<>(); |
@@ -62,6 +66,10 @@ private void syncOffsetsForGroup(String consumerGroup) throws IOException { |
62 | 66 | for (Map.Entry<TopicPartition, OffsetAndMetadata> entry : topicOffsetsAndMetadata.entrySet()) { |
63 | 67 | TopicPartition tp = entry.getKey(); |
64 | 68 | OffsetAndMetadata offsetAndMetadata = entry.getValue(); |
| 69 | + if (offsetAndMetadata == null) { |
| 70 | + log.warn("OffsetAndMetadata not available, negative offset? for tp {}", tp); |
| 71 | + return; |
| 72 | + } |
65 | 73 |
|
66 | 74 | if (validTopic(tp.topic())) { |
67 | 75 | if (!this.topicOffsets.containsKey(tp)) { |
|
0 commit comments