diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java index 90954e8d1a68af50f512f1637f6ea6acf198d5a5..a08986f02e89f0fe0f19a832ae5591601e3a5935 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java @@ -544,7 +544,7 @@ class ConnectionPageGeneral extends ActiveWizardPage { connectionFolderCombo.add(CoreMessages.toolbar_datasource_selector_empty); connectionFolders.clear(); connectionFolders.add(null); - for (DBPDataSourceFolder folder : getWizard().getDataSourceRegistry().getRootFolders()) { + for (DBPDataSourceFolder folder : DBUtils.makeOrderedObjectList(getWizard().getDataSourceRegistry().getRootFolders())) { loadConnectionFolder(0, folder); } } @@ -557,7 +557,7 @@ class ConnectionPageGeneral extends ActiveWizardPage { connectionFolders.add(folder); connectionFolderCombo.add(prefix + folder.getName()); - for (DBPDataSourceFolder child : folder.getChildren()) { + for (DBPDataSourceFolder child : DBUtils.makeOrderedObjectList(folder.getChildren())) { loadConnectionFolder(level + 1, child); } } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java index 8d391aed4adc30fecb87a98dc1cf00f677e3fb63..43a7c2256be6f65fc633a203082a4da898eab6e6 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java @@ -1432,8 +1432,20 @@ public final class DBUtils { return Comparator.comparingInt(DBSAttributeBase::getOrdinalPosition); } - public static void orderObjects(@NotNull List objects) - { + public static List makeOrderedObjectList(@NotNull Collection objects) { + List ordered = new ArrayList<>(objects); + orderObjects(ordered); + return ordered; + } + + public static List makeOrderedObjectList(@NotNull T[] objects) { + List ordered = new ArrayList<>(); + Collections.addAll(ordered, objects); + orderObjects(ordered); + return ordered; + } + + public static void orderObjects(@NotNull List objects) { objects.sort((o1, o2) -> { String name1 = o1.getName(); String name2 = o2.getName();