Skip to content

Commit b616502

Browse files
authored
Pipe Log: Added the remaining chinese logs & Further reduced the repeatable logs (#17700)
* zh * h
1 parent 33c3ef7 commit b616502

22 files changed

Lines changed: 351 additions & 155 deletions

File tree

iotdb-core/confignode/src/main/i18n/zh/org/apache/iotdb/confignode/i18n/ManagerMessages.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ public final class ManagerMessages {
2828
public static final String AFTER_THIS_SUCCESSFUL_SYNC_IF_SUBSCRIPTIONINFO_IS_EMPTY_DURING_THIS =
2929
"After this successful sync, if SubscriptionInfo is empty during this sync and has not been modified afterwards, all subsequent syncs will be skipped";
3030
public static final String ATTEMPT_TO_REPORT_PIPE_EXCEPTION_TO_A_NULL_PIPETASKMETA =
31-
"Attempt to report pipe exception to a null PipeTaskMeta.";
31+
"尝试向空的 PipeTaskMeta 上报 pipe 异常。";
3232
public static final String AUTH_RUN_AUTH_PLAN = "Auth: run auth plan: {}";
3333
public static final String CLUSTERID = "clusterID: {}";
3434
public static final String COLLECTING_PIPE_HEARTBEAT_FROM_DATA_NODES =
35-
"Collecting pipe heartbeat {} from data nodes";
35+
"正在从 data nodes 收集 pipe 心跳 {}";
3636
public static final String CONNECTION_FROM_DATANODE_TO_DATANODE_IS_BROKEN =
3737
"Connection from DataNode {} to DataNode {} is broken";
3838
public static final String CONSENSUSGROUPSTATISTICS = "[ConsensusGroupStatistics]\t {}: {} -> {}";
@@ -128,7 +128,7 @@ public final class ManagerMessages {
128128
public static final String FAILED_TO_CREATE_PEER_FOR_CONSENSUS_GROUP =
129129
"Failed to create peer for consensus group";
130130
public static final String FAILED_TO_CREATE_PIPE_RESULT_STATUS =
131-
"Failed to create pipe {}. Result status: {}.";
131+
"创建 pipe {} 失败。结果状态:{}。";
132132
public static final String FAILED_TO_CREATE_SUBTASK_FOR_PIPE_CREATION_TIME =
133133
"Failed to create subtask for pipe %s, creation time %d";
134134
public static final String FAILED_TO_CREATE_TOPIC_WITH_ATTRIBUTES_RESULT_STATUS =
@@ -143,7 +143,7 @@ public final class ManagerMessages {
143143
public static final String FAILED_TO_DEREGISTER_PIPE_TEMPORARY_META_METRICS_PIPETEMPORARYMETA_DOES_NOT =
144144
"Failed to deregister pipe temporary meta metrics, PipeTemporaryMeta({}) does not exist";
145145
public static final String FAILED_TO_DROP_PIPE_RESULT_STATUS =
146-
"Failed to drop pipe {}. Result status: {}.";
146+
"删除 pipe {} 失败。结果状态:{}。";
147147
public static final String FAILED_TO_GET_ALL_PIPE_INFO = "Failed to get all pipe info.";
148148
public static final String FAILED_TO_GET_ALL_SUBSCRIPTION_INFO =
149149
"Failed to get all subscription info.";
@@ -162,17 +162,17 @@ public final class ManagerMessages {
162162
public static final String FAILED_TO_SHOW_SUBSCRIPTION_INFO = "Failed to show subscription info.";
163163
public static final String FAILED_TO_SHOW_TOPIC_INFO = "Failed to show topic info.";
164164
public static final String FAILED_TO_START_PIPE_RESULT_STATUS =
165-
"Failed to start pipe {}. Result status: {}.";
165+
"启动 pipe {} 失败。结果状态:{}。";
166166
public static final String FAILED_TO_STOP_PIPE_RESULT_STATUS =
167-
"Failed to stop pipe {}. Result status: {}.";
167+
"停止 pipe {} 失败。结果状态:{}。";
168168
public static final String FAILED_TO_SUBMIT_ASYNC_CONSENSUS_PIPE_CREATION_FOR =
169169
"Failed to submit async consensus pipe creation for {}: {}";
170170
public static final String FAILED_TO_SUBMIT_ASYNC_CONSENSUS_PIPE_DROP_FOR =
171171
"Failed to submit async consensus pipe drop for {}: {}";
172172
public static final String FAILED_TO_SYNC_CONSUMER_GROUP_META_RESULT_STATUS =
173173
"Failed to sync consumer group meta. Result status: {}.";
174174
public static final String FAILED_TO_SYNC_PIPE_META_RESULT_STATUS =
175-
"Failed to sync pipe meta. Result status: {}.";
175+
"同步 pipe 元数据失败。结果状态:{}。";
176176
public static final String FAILED_TO_SYNC_TEMPLATE_EXTENSION_INFO_TO_DATANODE =
177177
"Failed to sync template {} extension info to DataNode {}";
178178
public static final String FAILED_TO_SYNC_TOPIC_META_RESULT_STATUS =

iotdb-core/datanode/src/main/i18n/en/org/apache/iotdb/db/i18n/DataNodePipeMessages.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,16 @@ public final class DataNodePipeMessages {
142142
"Failed to persist progress index to configNode, status: {}";
143143
public static final String FAILURE_WHEN_REGISTER_PIPE_PLUGIN_SKIP_THIS =
144144
"Failure when register pipe plugin {}. Skip this plugin and continue startup.";
145+
public static final String
146+
FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_NAME_CONFLICTS_WITH_BUILTIN =
147+
"Failed to register PipePlugin %s, because the given PipePlugin name is the same as a built-in PipePlugin name.";
148+
public static final String
149+
FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_INSTANCE_CONSTRUCTION_FAILED =
150+
"Failed to register PipePlugin %s(%s), because its instance can not be constructed successfully. Exception: %s";
151+
public static final String FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_JAR_MD5_MISMATCH =
152+
"Failed to register PipePlugin %s, because existed md5 of jar file for pipe plugin %s is different from the new jar file.";
153+
public static final String FAILED_TO_DEREGISTER_BUILTIN_PIPE_PLUGIN =
154+
"Failed to deregister builtin PipePlugin %s.";
145155
public static final String PIPECONNECTOR = "PipeConnector: ";
146156
public static final String PIPEDATANODETASKBUILDER_FAILED_TO_PARSE_INCLUSION_AND_EXCLUSION =
147157
"PipeDataNodeTaskBuilder failed to parse 'inclusion' and 'exclusion' parameters: {}";
@@ -439,8 +449,15 @@ public final class DataNodePipeMessages {
439449
public static final String FAILED_TO_START_SOURCES = "failed to start sources.";
440450
public static final String HEARTBEAT_EVENT_CAN_NOT_BE_SUPPLIED_BECAUSE =
441451
"Heartbeat Event {} can not be supplied because the reference count can not be increased";
452+
public static final String EVENT_CAN_NOT_BE_SUPPLIED_BECAUSE_DATA_IS_LOST =
453+
"Event %s can not be supplied because the reference count can not be increased, the data represented by this event is lost";
442454
public static final String INTERRUPTED_WAITING_FOR_PROCESSOR_TO_STOP =
443455
"Interrupted waiting for processor to stop";
456+
public static final String INTERRUPTED_WHEN_WAITING_FOR_PARSING_PRIVILEGE_FOR_TSFILE =
457+
"Interrupted when waiting for parsing privilege for TsFile %s.";
458+
public static final String PARSE_TSFILE_WHEN_CHECKING_PRIVILEGE_ERROR =
459+
"Parse TsFile %s when checking privilege error. Because: %s";
460+
public static final String READ_TSFILE_ERROR = "Read TsFile %s error.";
444461
public static final String IOTDBSCHEMAREGIONSOURCE_DOES_NOT_SUPPORT_TRANSFERRING_EVENTS_UNDER =
445462
"IoTDBSchemaRegionSource does not support transferring events under simple consensus";
446463
public static final String NOT_HAS_PRIVILEGE_TO_TRANSFER_EVENT =
@@ -826,6 +843,8 @@ public final class DataNodePipeMessages {
826843
public static final String REDIRECT_FILE_POSITION_TO = "Redirect file position to {}.";
827844
public static final String REDIRECT_TO_POSITION_IN_TRANSFERRING_TSFILE =
828845
"Redirect to position {} in transferring tsFile {}.";
846+
public static final String NETWORK_FAILED_TO_RECEIVE_TSFILE_STATUS =
847+
"Network failed to receive tsFile %s, status: %s";
829848
public static final String SECURITY_DIR = "security dir: {}";
830849
public static final String SECURITY_PKI_DIR = "security pki dir: {}";
831850
public static final String SUCCESSFULLY_ADDED_ITEM = "Successfully added item {}.";

iotdb-core/datanode/src/main/i18n/zh/org/apache/iotdb/db/i18n/DataNodePipeMessages.java

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,19 @@ public final class DataNodePipeMessages {
8484
// ===================== AGENT =====================
8585

8686
public static final String ATTEMPT_TO_REPORT_PIPE_EXCEPTION_TO_A =
87-
"Attempt to report pipe exception to a null PipeTaskMeta.";
87+
"尝试向空的 PipeTaskMeta 上报 pipe 异常。";
8888
public static final String CANNOT_PARSE_REBOOT_TIMES_FROM_FILE_SET =
8989
"无法解析 reboot times from file {}, set the current time in seconds ({}) as the reboot times";
9090
public static final String CANNOT_RECORD_REBOOT_TIMES_TO_FILE_THE =
9191
"无法记录 reboot times {} to file {}, the reboot times will not be updated";
9292
public static final String CANNOT_START_SIMPLEPROGRESSINDEXASSIGNER_BECAUSE_OF =
9393
"无法启动 SimpleProgressIndexAssigner because of {}";
9494
public static final String CREATE_PIPE_DN_TASK_SUCCESSFULLY_WITHIN_MS =
95-
"创建 pipe DN task {} successfully within {} ms";
95+
"创建 pipe DN task {} 成功,耗时 {} ms";
9696
public static final String DEREGISTER_SUBTASK_RUNNINGTASKCOUNT_REGISTEREDTASKCOUNT =
97-
"Deregister subtask {}. runningTaskCount: {}, registeredTaskCount: {}";
97+
"注销子任务 {}。runningTaskCount: {}, registeredTaskCount: {}";
9898
public static final String DROP_PIPE_DN_TASK_SUCCESSFULLY_WITHIN_MS =
99-
"Drop pipe DN task {} successfully within {} ms";
99+
"删除 pipe DN task {} 成功,耗时 {} ms";
100100
public static final String ERROR_OCCURRED_WHEN_COLLECTING_EVENTS_FROM_PROCESSOR =
101101
"collecting events from processor 时发生错误";
102102
public static final String EXCEPTION_IN_PIPE_EVENT_PROCESSING_IGNORED_BECAUSE =
@@ -132,9 +132,19 @@ public final class DataNodePipeMessages {
132132
"获取 pipe task meta from config node. Ignore the exception 失败,原因:config node may not be "
133133
+ "ready yet, and meta will be pushed by config node later.";
134134
public static final String FAILED_TO_PERSIST_PROGRESS_INDEX_TO_CONFIGNODE =
135-
"persist progress index to configNode, status: {} 失败";
135+
"持久化 progress index configNode 失败,状态:{}";
136136
public static final String FAILURE_WHEN_REGISTER_PIPE_PLUGIN_SKIP_THIS =
137-
"Failure when register pipe plugin {}. Skip this plugin and continue startup.";
137+
"注册 pipe plugin {} 失败。将跳过该插件并继续启动。";
138+
public static final String
139+
FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_NAME_CONFLICTS_WITH_BUILTIN =
140+
"注册 PipePlugin %s 失败,因为给定的 PipePlugin 名称与内置 PipePlugin 名称重复。";
141+
public static final String
142+
FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_INSTANCE_CONSTRUCTION_FAILED =
143+
"注册 PipePlugin %s(%s) 失败,因为其实例无法成功构造。异常:%s";
144+
public static final String FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_JAR_MD5_MISMATCH =
145+
"注册 PipePlugin %s 失败,因为 pipe plugin %s 已存在的 jar 文件 MD5 与新的 jar 文件不同。";
146+
public static final String FAILED_TO_DEREGISTER_BUILTIN_PIPE_PLUGIN =
147+
"注销内置 PipePlugin %s 失败。";
138148
public static final String PIPECONNECTOR = "PipeConnector: ";
139149
public static final String PIPEDATANODETASKBUILDER_FAILED_TO_PARSE_INCLUSION_AND_EXCLUSION =
140150
"PipeDataNodeTaskBuilder failed to parse 'inclusion' and 'exclusion' parameters: {}";
@@ -157,51 +167,51 @@ public final class DataNodePipeMessages {
157167
"PipeDataNodeTaskBuilder: When the realtime sync is enabled, we enable rate limiter in "
158168
+ "sending tsfile by default to reserve disk and network IO for realtime sending.";
159169
public static final String PIPEEVENTCOLLECTOR_THE_EVENT_IS_ALREADY_RELEASED_SKIPPING =
160-
"PipeEventCollector: The event {} is already released, skipping it.";
170+
"PipeEventCollector:事件 {} 已被释放,跳过处理。";
161171
public static final String PIPE_CONNECTOR_SUBTASK_WAS_CLOSED_WITHIN_MS =
162172
"Pipe:connector subtask {} ({}) 已关闭 within {} ms";
163-
public static final String PIPE_META_NOT_FOUND = "Pipe meta not found: ";
173+
public static final String PIPE_META_NOT_FOUND = "未找到 pipe 元数据:";
164174
public static final String PIPE_SINK_SUBTASKS_WITH_ATTRIBUTES_IS_BOUNDED =
165175
"Pipe sink subtasks with attributes {} is bounded with sinkExecutor {} and "
166176
+ "callbackExecutor {}.";
167177
public static final String PIPE_SKIPPING_TEMPORARY_TSFILE_WHICH_SHOULDN_T =
168-
"Pipe skipping temporary TsFile which shouldn't be transferred: {}";
178+
"Pipe 跳过不应传输的临时 TsFile{}";
169179
public static final String PULLED_PIPE_META_FROM_CONFIG_NODE_RECOVERING =
170-
"Pulled pipe meta from config node: {}, recovering ...";
180+
"已从 config node 拉取 pipe 元数据:{},正在恢复 ...";
171181
public static final String RECEIVED_PIPE_HEARTBEAT_REQUEST_FROM_CONFIG_NODE =
172-
"Received pipe heartbeat request {} from config node.";
182+
"收到来自 config node 的 pipe 心跳请求 {}。";
173183
public static final String REGION_NO_TSFILEINSERTIONEVENTS_TO_REPLACE_FOR_SOURCE =
174184
"Region {}: No TsFileInsertionEvents to replace for source files {}";
175185
public static final String REGION_REPLACED_TSFILEINSERTIONEVENTS_WITH =
176186
"Region {}: Replaced TsFileInsertionEvents {} with {}";
177-
public static final String REGISTEREDTASKCOUNT_0 = "registeredTaskCount < 0";
178-
public static final String REGISTEREDTASKCOUNT_0_1 = "registeredTaskCount <= 0";
187+
public static final String REGISTEREDTASKCOUNT_0 = "registeredTaskCount 小于 0";
188+
public static final String REGISTEREDTASKCOUNT_0_1 = "registeredTaskCount 小于等于 0";
179189
public static final String REGISTER_SUBTASK_RUNNINGTASKCOUNT_REGISTEREDTASKCOUNT =
180-
"Register subtask {}. runningTaskCount: {}, registeredTaskCount: {}";
190+
"注册子任务 {}。runningTaskCount: {}, registeredTaskCount: {}";
181191
public static final String REPORT_PIPERUNTIMEEXCEPTION_TO_LOCAL_PIPETASKMETA_EXCEPTION_MESSAGE =
182-
"Report PipeRuntimeException to local PipeTaskMeta({}), exception message: {}";
183-
public static final String RUNNINGTASKCOUNT_0 = "runningTaskCount < 0";
184-
public static final String RUNNINGTASKCOUNT_0_1 = "runningTaskCount <= 0";
192+
"向本地 PipeTaskMeta({}) 上报 PipeRuntimeException,异常信息:{}";
193+
public static final String RUNNINGTASKCOUNT_0 = "runningTaskCount 小于 0";
194+
public static final String RUNNINGTASKCOUNT_0_1 = "runningTaskCount 小于等于 0";
185195
public static final String SIMPLEPROGRESSINDEXASSIGNER_STARTED_SUCCESSFULLY_ISSIMPLECONSENSUSENABLE_R =
186-
"SimpleProgressIndexAssigner started successfully. isSimpleConsensusEnable: {}, "
196+
"SimpleProgressIndexAssigner 启动成功。isSimpleConsensusEnable: {}, "
187197
+ "rebootTimes: {}";
188198
public static final String STARTING_SIMPLEPROGRESSINDEXASSIGNER =
189-
"Starting SimpleProgressIndexAssigner ...";
199+
"正在启动 SimpleProgressIndexAssigner ...";
190200
public static final String START_PIPE_DN_TASK_SUCCESSFULLY_WITHIN_MS =
191-
"Start pipe DN task {} successfully within {} ms";
201+
"启动 pipe DN task {} 成功,耗时 {} ms";
192202
public static final String START_SUBTASK_RUNNINGTASKCOUNT_REGISTEREDTASKCOUNT =
193-
"Start subtask {}. runningTaskCount: {}, registeredTaskCount: {}";
203+
"启动子任务 {}。runningTaskCount: {}, registeredTaskCount: {}";
194204
public static final String STOP_PIPE_DN_TASK_SUCCESSFULLY_WITHIN_MS =
195-
"Stop pipe DN task {} successfully within {} ms";
205+
"停止 pipe DN task {} 成功,耗时 {} ms";
196206
public static final String STOP_SUBTASK_RUNNINGTASKCOUNT_REGISTEREDTASKCOUNT =
197-
"Stop subtask {}. runningTaskCount: {}, registeredTaskCount: {}";
207+
"停止子任务 {}。runningTaskCount: {}, registeredTaskCount: {}";
198208
public static final String SUBTASK_IS_CLOSED_IGNORE_EXCEPTION =
199209
"subtask {} 已关闭, ignore exception";
200-
public static final String SUBTASK_WORKER_IS_INTERRUPTED = "subtask worker is interrupted";
210+
public static final String SUBTASK_WORKER_IS_INTERRUPTED = "子任务工作线程被中断";
201211
public static final String SUCCESSFULLY_PERSISTED_ALL_PIPE_S_INFO_TO =
202212
"成功 persisted all pipe's info to configNode。";
203213
public static final String THE_EXECUTOR_AND_HAS_BEEN_SUCCESSFULLY_SHUTDOWN =
204-
"The executor {} and {} has been successfully shutdown.";
214+
"执行器 {} {} 已成功关闭。";
205215

206216
// ===================== EVENT =====================
207217

@@ -422,9 +432,16 @@ public final class DataNodePipeMessages {
422432
"加载 snapshot from byteBuffer {} 失败。";
423433
public static final String FAILED_TO_START_SOURCES = "启动 sources 失败。";
424434
public static final String HEARTBEAT_EVENT_CAN_NOT_BE_SUPPLIED_BECAUSE =
425-
"Heartbeat Event {} can not be supplied because the reference count can not be increased";
435+
"Heartbeat Event {} 无法被提供,因为其引用计数无法增加";
436+
public static final String EVENT_CAN_NOT_BE_SUPPLIED_BECAUSE_DATA_IS_LOST =
437+
"Event %s 无法被提供,因为其引用计数无法增加,事件代表的数据已经丢失";
426438
public static final String INTERRUPTED_WAITING_FOR_PROCESSOR_TO_STOP =
427-
"Interrupted waiting for processor to stop";
439+
"等待 processor 停止时被中断";
440+
public static final String INTERRUPTED_WHEN_WAITING_FOR_PARSING_PRIVILEGE_FOR_TSFILE =
441+
"等待解析 TsFile %s 的权限信息时被中断。";
442+
public static final String PARSE_TSFILE_WHEN_CHECKING_PRIVILEGE_ERROR =
443+
"检查权限时解析 TsFile %s 失败。原因:%s";
444+
public static final String READ_TSFILE_ERROR = "读取 TsFile %s 失败。";
428445
public static final String IOTDBSCHEMAREGIONSOURCE_DOES_NOT_SUPPORT_TRANSFERRING_EVENTS_UNDER =
429446
"IoTDBSchemaRegionSource 不支持 transferring events under simple consensus";
430447
public static final String NOT_HAS_PRIVILEGE_TO_TRANSFER_EVENT = "没有权限 transfer event: ";
@@ -829,6 +846,8 @@ public final class DataNodePipeMessages {
829846
+ "Peeked event: {}, polled event: {}.";
830847
public static final String THE_FILE_IS_NOT_FOUND_MAY_ALREADY =
831848
"The file {} is not found, may already be deleted.";
849+
public static final String NETWORK_FAILED_TO_RECEIVE_TSFILE_STATUS =
850+
"网络接收 TsFile %s 失败,状态:%s";
832851
public static final String THE_PIPE_WAS_DROPPED_SO_THE_EVENT =
833852
"The pipe {} was dropped so the event ack {} will be ignored.";
834853
public static final String THE_PIPE_WAS_DROPPED_SO_THE_EVENT_1 =

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/plugin/PipeDataNodePluginAgent.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ private void checkIfRegistered(final PipePluginMeta pipePluginMeta) throws PipeE
100100
if (information.isBuiltin()) {
101101
String errorMessage =
102102
String.format(
103-
"Failed to register PipePlugin %s, because "
104-
+ "the given PipePlugin name is the same as a built-in PipePlugin name.",
103+
DataNodePipeMessages
104+
.FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_NAME_CONFLICTS_WITH_BUILTIN,
105105
pluginName);
106106
LOGGER.warn(errorMessage);
107107
throw new PipeException(errorMessage);
@@ -113,10 +113,9 @@ private void checkIfRegistered(final PipePluginMeta pipePluginMeta) throws PipeE
113113
&& !PipePluginExecutableManager.getInstance().isLocalJarMatched(pipePluginMeta)) {
114114
String errMsg =
115115
String.format(
116-
"Failed to register PipePlugin %s, because "
117-
+ "existed md5 of jar file for pipe plugin %s "
118-
+ "is different from the new jar file.",
119-
pluginName, pluginName);
116+
DataNodePipeMessages.FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_JAR_MD5_MISMATCH,
117+
pluginName,
118+
pluginName);
120119
LOGGER.warn(errMsg);
121120
throw new PipeException(errMsg);
122121
}
@@ -170,9 +169,11 @@ public void doRegister(final PipePluginMeta pipePluginMeta) throws PipeException
170169
| ClassCastException e) {
171170
String errorMessage =
172171
String.format(
173-
"Failed to register PipePlugin %s(%s), because "
174-
+ "its instance can not be constructed successfully. Exception: %s",
175-
pluginName.toUpperCase(), className, e);
172+
DataNodePipeMessages
173+
.FAILED_TO_REGISTER_PIPE_PLUGIN_BECAUSE_INSTANCE_CONSTRUCTION_FAILED,
174+
pluginName.toUpperCase(),
175+
className,
176+
e);
176177
LOGGER.warn(errorMessage, e);
177178
throw new PipeException(errorMessage);
178179
}
@@ -210,7 +211,8 @@ public void deregister(final String pluginName, final boolean needToDeleteJar)
210211

211212
if (information != null && information.isBuiltin()) {
212213
String errorMessage =
213-
String.format("Failed to deregister builtin PipePlugin %s.", pluginName);
214+
String.format(
215+
DataNodePipeMessages.FAILED_TO_DEREGISTER_BUILTIN_PIPE_PLUGIN, pluginName);
214216
LOGGER.warn(errorMessage);
215217
throw new PipeException(errorMessage);
216218
}

0 commit comments

Comments
 (0)