From 1dc838eb3487c37c11986310e6cc827720fbaf7d Mon Sep 17 00:00:00 2001 From: He Wang Date: Tue, 21 Jun 2022 16:32:50 +0800 Subject: [PATCH] use safeTimestamp (#48) --- .../oceanbase/clogproxy/client/config/ObReaderConfig.java | 7 ++++++- .../clogproxy/client/connection/ClientHandler.java | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/config/ObReaderConfig.java b/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/config/ObReaderConfig.java index 971bece..ccbc14e 100644 --- a/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/config/ObReaderConfig.java +++ b/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/config/ObReaderConfig.java @@ -137,7 +137,12 @@ public class ObReaderConfig extends AbstractConnectionConfig { @Override public void updateCheckpoint(String checkpoint) { try { - startTimestamp.set(Long.parseLong(checkpoint)); + long timestamp = Long.parseLong(checkpoint); + if (timestamp < 0) { + throw new IllegalArgumentException( + "update checkpoint with invalid value: " + checkpoint); + } + startTimestamp.set(timestamp); } catch (NumberFormatException e) { // do nothing } diff --git a/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/connection/ClientHandler.java b/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/connection/ClientHandler.java index d05c0dd..66b0404 100644 --- a/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/connection/ClientHandler.java +++ b/logproxy-client/src/main/java/com/oceanbase/clogproxy/client/connection/ClientHandler.java @@ -331,10 +331,14 @@ public class ClientHandler extends ChannelInboundHandlerAdapter { throw new LogProxyClientException(ErrorCode.E_PARSE, e); } + if (logger.isTraceEnabled()) { + logger.trace("Log message: {}", logMessage); + } + while (true) { try { recordQueue.put(new StreamContext.TransferPacket(logMessage)); - stream.setCheckpointString(logMessage.getTimestamp()); + stream.setCheckpointString(logMessage.getSafeTimestamp()); break; } catch (InterruptedException e) { // do nothing -- GitLab