From 4ddef31c208c54f711e1ea3517d6951a35fb12c1 Mon Sep 17 00:00:00 2001 From: Mingyu Chen Date: Thu, 21 Dec 2023 14:39:00 +0800 Subject: [PATCH] (fix)[meta][export] fix replay export NPE issue (#28752) The ConnectionContext does not exist in replay thread --- .../main/java/org/apache/doris/analysis/ExportStmt.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java index 686dfcc6fcf133..1b33630e802aac 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java @@ -124,9 +124,12 @@ public ExportStmt(TableRef tableRef, Expr whereExpr, String path, this.lineDelimiter = DEFAULT_LINE_DELIMITER; this.timeout = DEFAULT_TIMEOUT; - Optional optionalSessionVariable = Optional.ofNullable( - ConnectContext.get().getSessionVariable()); - this.sessionVariables = optionalSessionVariable.orElse(VariableMgr.getDefaultSessionVariable()); + // ConnectionContext may not exist when in replay thread + if (ConnectContext.get() != null) { + this.sessionVariables = VariableMgr.cloneSessionVariable(ConnectContext.get().getSessionVariable()); + } else { + this.sessionVariables = VariableMgr.cloneSessionVariable(VariableMgr.getDefaultSessionVariable()); + } } @Override