From c52eab66aa07fc88617a7298ea8d0868984acd8b Mon Sep 17 00:00:00 2001 From: vran Date: Thu, 5 May 2022 20:17:43 +0800 Subject: [PATCH] fix: npe when sync project --- .../java/com/databasir/job/ProjectSyncTaskScheduler.java | 3 ++- .../core/domain/document/service/DocumentService.java | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/com/databasir/job/ProjectSyncTaskScheduler.java b/api/src/main/java/com/databasir/job/ProjectSyncTaskScheduler.java index 5586292..b38e6e4 100644 --- a/api/src/main/java/com/databasir/job/ProjectSyncTaskScheduler.java +++ b/api/src/main/java/com/databasir/job/ProjectSyncTaskScheduler.java @@ -54,7 +54,8 @@ public class ProjectSyncTaskScheduler { updateSyncTaskStatus(taskId, ProjectSyncTaskStatus.FINISHED, "ok"); saveOperationLog(projectId, userId, null); } catch (Exception e) { - updateSyncTaskStatus(taskId, ProjectSyncTaskStatus.FAILED, e.getMessage()); + String result = Objects.requireNonNullElse(e.getMessage(), "unknown"); + updateSyncTaskStatus(taskId, ProjectSyncTaskStatus.FAILED, result); saveOperationLog(projectId, userId, e); throw e; } diff --git a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java index beb6961..a1ffe4c 100644 --- a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java +++ b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java @@ -143,13 +143,16 @@ public class DocumentService { databasirConfig.setIgnoreTableNameRegex(jsonConverter.fromJson(rule.getIgnoreTableNameRegexArray())); databasirConfig.setIgnoreTableColumnNameRegex(jsonConverter.fromJson(rule.getIgnoreColumnNameRegexArray())); try { + if (jdbcConnection == null) { + throw DomainErrors.CONNECT_DATABASE_FAILED.exception(); + } DatabaseMeta databaseMeta = Databasir.of(databasirConfig) .get(jdbcConnection, dataSource.getDatabaseName(), dataSource.getSchemaName()) .orElseThrow(DomainErrors.DATABASE_META_NOT_FOUND::exception); return databaseMeta; } finally { try { - if (!jdbcConnection.isClosed()) { + if (jdbcConnection != null && !jdbcConnection.isClosed()) { jdbcConnection.close(); } } catch (SQLException e) {