This is an automated email from the ASF dual-hosted git repository. Aias00 pushed a commit to branch 2.0.0 in repository https://gitbox.apache.org/repos/asf/hertzbeat.git
commit 20caf898945862d493732601887e9fbdb1d4678e Author: liuhy <[email protected]> AuthorDate: Fri Jun 5 14:26:28 2026 +0800 fix(core): replace silent exception swallowing and assert-based null guards - MonitorServiceImpl: log warning when detectMonitor fails during addMonitor and reapplyMonitors instead of silently swallowing the exception - TdEngineDataStorage: replace 4 'assert x != null' with 'if (x != null)' guards in finally blocks. Java assertions are disabled by default (-da), meaning assert was a no-op and NullPointerException from the subsequent close() call would mask the original exception Co-Authored-By: Claude Opus 4.8 <[email protected]> --- .../manager/service/impl/MonitorServiceImpl.java | 8 +++- .../history/tsdb/tdengine/TdEngineDataStorage.java | 43 ++++++++++++---------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/MonitorServiceImpl.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/MonitorServiceImpl.java index 9f2db1c6de..bcda65df57 100644 --- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/MonitorServiceImpl.java +++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/MonitorServiceImpl.java @@ -212,7 +212,9 @@ public class MonitorServiceImpl implements MonitorService { : collectJobScheduling.addAsyncCollectJob(appDefine, collector); try { detectMonitor(monitor, params, collector); - } catch (Exception ignored) { + } catch (Exception e) { + log.warn("Monitor detection failed during addMonitor for monitor [{}]: {}", + monitor.getName(), e.getMessage()); } try { @@ -621,7 +623,9 @@ public class MonitorServiceImpl implements MonitorService { applicationContext.publishEvent(new MonitorDeletedEvent(applicationContext, monitor.getId())); try { detectMonitor(monitor, params, collector); - } catch (Exception ignored) { + } catch (Exception e) { + log.warn("Monitor detection failed during reapplyMonitors for monitor [{}]: {}", + monitor.getName(), e.getMessage()); } } oldMonitorStatusWriteModelService.saveMonitorStatusChanges(unManagedMonitors); diff --git a/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/tsdb/tdengine/TdEngineDataStorage.java b/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/tsdb/tdengine/TdEngineDataStorage.java index 361d45dbbb..308e15b0bc 100644 --- a/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/tsdb/tdengine/TdEngineDataStorage.java +++ b/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/tsdb/tdengine/TdEngineDataStorage.java @@ -295,8 +295,8 @@ public class TdEngineDataStorage extends AbstractHistoryDataStorage { fieldSqlBuilder.append(")"); String createTableSql = String.format(CREATE_SUPER_TABLE_SQL, superTable, fieldSqlBuilder); try { - assert statement != null; - + // statement is guaranteed non-null here because we entered this + // catch block only after statement.execute() threw at line 272 if (log.isInfoEnabled()) { log.info("[tdengine-data]: create {} use sql: {}.", superTable, createTableSql); } @@ -314,12 +314,13 @@ public class TdEngineDataStorage extends AbstractHistoryDataStorage { } } } finally { - try { - assert connection != null; - connection.close(); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error(e.getMessage()); + if (connection != null) { + try { + connection.close(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error(e.getMessage()); + } } } } @@ -444,12 +445,13 @@ public class TdEngineDataStorage extends AbstractHistoryDataStorage { log.error(e.getMessage()); } } finally { - try { - assert connection != null; - connection.close(); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error(e.getMessage()); + if (connection != null) { + try { + connection.close(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error(e.getMessage()); + } } } } @@ -494,12 +496,13 @@ public class TdEngineDataStorage extends AbstractHistoryDataStorage { log.error(e.getMessage(), e); } } finally { - try { - assert conn != null; - conn.close(); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error(e.getMessage()); + if (conn != null) { + try { + conn.close(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error(e.getMessage()); + } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
