public ViewWorkspaceImpl askWorkspaceFolder(Window parentComponent, ProgressMonitor pm) { CoreWorkspaceImpl coreWorkspace = new CoreWorkspaceImpl(bundleVersion.getMajor(), bundleVersion.getMinor(), bundleVersion.getMicro(), bundleVersion.getQualifier(), new org.apache.felix.framework.Logger()); String errorMessage = ""; try { do { if (WorkspaceSelectionDialog.showWorkspaceFolderSelection(parentComponent, coreWorkspace, errorMessage)) { ///////////////////// // Check connection dataSourceService.setCoreWorkspace(coreWorkspace); try { dataSourceService.activate(); pm.setTaskName(I18N.tr("Connecting to the database..")); try (Connection connection = dataSourceService.getConnection()) { DatabaseMetaData meta = connection.getMetaData(); LOGGER.info(I18N.tr("Data source available {0} version {1}", meta.getDriverName(), meta.getDriverVersion())); return new ViewWorkspaceImpl(coreWorkspace); } } catch (SQLException ex) { errorMessage = ex.getLocalizedMessage(); } } else { // User cancel, stop OrbisGIS return null; } } while (true); } finally { pm.endTask(); } }