From b627c8f57f8ef0223deb24787ec54b61679fc5b2 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Tue, 31 Dec 2019 17:05:36 +0300 Subject: [PATCH] #7501 Task configuration loading error handle improve --- .../tasks/MySQLDatabaseExportHandler.java | 4 ++- .../ext/mysql/tasks/MySQLExportSettings.java | 2 +- .../tasks/MySQLScriptExecuteHandler.java | 4 ++- .../tasks/OracleScriptExecuteHandler.java | 4 ++- .../tasks/OracleScriptExecuteSettings.java | 3 +- .../tasks/PostgreBackupRestoreSettings.java | 3 +- .../tasks/PostgreDatabaseBackupHandler.java | 4 ++- .../tasks/PostgreDatabaseBackupSettings.java | 2 +- .../tasks/PostgreDatabaseRestoreHandler.java | 4 ++- .../tasks/PostgreDatabaseRestoreSettings.java | 2 +- .../tasks/PostgreScriptExecuteHandler.java | 4 ++- .../tasks/PostgreScriptExecuteSettings.java | 2 +- .../dbeaver/registry/task/TaskRunJob.java | 1 - .../ui/nativetool/AbstractToolWizard.java | 6 +++- .../AbstractImportExportSettings.java | 3 +- .../nativetool/AbstractNativeToolHandler.java | 2 +- .../AbstractNativeToolSettings.java | 5 +-- .../AbstractScriptExecuteSettings.java | 3 +- .../nativetool/AbstractToolSettings.java | 31 +++++++++++-------- 19 files changed, 57 insertions(+), 32 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java index 1de8b2b9b3..44628446c7 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java +++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLDatabaseExportHandler.java @@ -1,6 +1,7 @@ package org.jkiss.dbeaver.ext.mysql.tasks; import org.jkiss.code.NotNull; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.ext.mysql.MySQLConstants; import org.jkiss.dbeaver.ext.mysql.model.MySQLTableBase; @@ -30,9 +31,10 @@ public class MySQLDatabaseExportHandler extends MySQLNativeToolHandler } @Override - public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore store) { + public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore store) throws DBException { super.loadSettings(runnableContext, store); noCreateStatements = CommonUtils.getBoolean(store.getString("MySQL.export.noCreateStatements"), false); addDropStatements = CommonUtils.getBoolean(store.getString("MySQL.export.addDropStatements"), true); diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java index 8f5dcf8a58..7dcc0652d2 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java +++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tasks/MySQLScriptExecuteHandler.java @@ -1,5 +1,6 @@ package org.jkiss.dbeaver.ext.mysql.tasks; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.ext.mysql.MySQLConstants; import org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog; @@ -22,11 +23,12 @@ public class MySQLScriptExecuteHandler extends MySQLNativeToolHandler } @Override - public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) { + public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) throws DBException { super.loadSettings(runnableContext, preferenceStore); extraCommandArgs = preferenceStore.getString(PROP_NAME_EXTRA_ARGS); @@ -114,7 +115,7 @@ public abstract class AbstractNativeToolSettings if (!CommonUtils.isEmpty(toolUserName)) toolUserName = encrypter.decrypt(toolUserName); if (!CommonUtils.isEmpty(toolUserPassword)) toolUserPassword = encrypter.decrypt(toolUserPassword); } catch (Exception e) { - log.debug(e); + throw new DBException("Error decrypting user credentials", e); } } diff --git a/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java b/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java index 8580c74504..62444e6ff4 100644 --- a/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java +++ b/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractScriptExecuteSettings.java @@ -17,6 +17,7 @@ */ package org.jkiss.dbeaver.tasks.nativetool; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.runtime.DBRRunnableContext; import org.jkiss.dbeaver.model.struct.DBSObject; @@ -33,7 +34,7 @@ public class AbstractScriptExecuteSettings extend } @Override - public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) { + public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) throws DBException { super.loadSettings(runnableContext, preferenceStore); inputFile = preferenceStore.getString("inputFile"); diff --git a/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractToolSettings.java b/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractToolSettings.java index c4a871d240..4481d4c6f1 100644 --- a/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractToolSettings.java +++ b/plugins/org.jkiss.dbeaver.tasks.native/src/org/jkiss/dbeaver/tasks/nativetool/AbstractToolSettings.java @@ -17,6 +17,7 @@ */ package org.jkiss.dbeaver.tasks.nativetool; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.DBPDataSourceContainer; import org.jkiss.dbeaver.model.DBUtils; @@ -63,7 +64,7 @@ public abstract class AbstractToolSettings { } } - public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) { + public void loadSettings(DBRRunnableContext runnableContext, DBPPreferenceStore preferenceStore) throws DBException { if (dataSourceContainer == null && !CommonUtils.isEmpty(databaseObjects)) { BASE_OBJECT baseObject = databaseObjects.get(0); dataSourceContainer = baseObject instanceof DBPDataSourceContainer ? @@ -94,23 +95,27 @@ public abstract class AbstractToolSettings { DBPProject finalProject = dataSourceContainer.getProject(); try { runnableContext.run(true, true, monitor -> { - monitor.beginTask("Load database object list", databaseObjectList.size()); - for (String objectId : databaseObjectList) { - monitor.subTask("Load " + objectId); - try { - DBSObject object = DBUtils.findObjectById(monitor, finalProject, objectId); - if (object != null) { - databaseObjects.add((BASE_OBJECT) object); + try { + monitor.beginTask("Load database object list", databaseObjectList.size()); + for (String objectId : databaseObjectList) { + monitor.subTask("Load " + objectId); + try { + DBSObject object = DBUtils.findObjectById(monitor, finalProject, objectId); + if (object != null) { + databaseObjects.add((BASE_OBJECT) object); + } + } catch (Throwable e) { + throw new DBException("Can't find database object '" + objectId + "' in project '" + finalProject.getName() + "' for task configuration", e); } - } catch (Throwable e) { - log.error("Can't find database object '" + objectId + "' in project '" + finalProject.getName() + "' for task configuration"); + monitor.worked(1); } - monitor.worked(1); + monitor.done(); + } catch (Exception e) { + throw new InvocationTargetException(e); } - monitor.done(); }); } catch (InvocationTargetException e) { - log.error("Error loading objects configuration", e); + throw new DBException("Error loading objects configuration", e.getTargetException()); } catch (InterruptedException e) { // Ignore } -- GitLab