This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/STABLE-4.2 by this push:
new 8bcc7fc1f CAY-2885 Modeler: DbImport fails to load DB schema view
8bcc7fc1f is described below
commit 8bcc7fc1fd4b42a0df5ea922419fa7fd5ea61423
Author: Nikita Timofeev <[email protected]>
AuthorDate: Mon Apr 14 14:31:04 2025 +0400
CAY-2885 Modeler: DbImport fails to load DB schema view
---
RELEASE-NOTES.txt | 1 +
.../org/apache/cayenne/modeler/action/LoadDbSchemaAction.java | 2 +-
.../cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java | 8 ++++++--
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 0add80420..fa56a29ce 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -18,6 +18,7 @@ CAY-2884 Upgrade gradle to 8.13
Bug Fixes:
CAY-2883 License and notice templates are not processed by the Gradle build
+CAY-2885 Modeler: DbImport fails to load DB schema view
----------------------------------
Release: 4.2.2
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
index 9f7b0155f..9f934f396 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
@@ -128,7 +128,7 @@ public class LoadDbSchemaAction extends
DBConnectionAwareAction {
private void loadTables(DBConnectionInfo connectionInfo,
TreePath tablePath,
- DbImportView rootParent) throws SQLException {
+ DbImportView rootParent) throws Exception {
ReverseEngineering databaseReverseEngineering = new
DatabaseSchemaLoader()
.loadTables(connectionInfo,
getApplication().getClassLoadingService(),
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
index 476c62d40..bb2d406c6 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
@@ -125,9 +125,10 @@ public class DatabaseSchemaLoader {
public ReverseEngineering loadTables(DBConnectionInfo connectionInfo,
ClassLoadingService loadingService,
TreePath path,
- String[] tableTypesFromConfig) throws
SQLException {
+ String[] tableTypesFromConfig) throws
Exception {
int pathIndex = 1;
String catalogName = null, schemaName = null;
+ DbAdapter adapter = connectionInfo.makeAdapter(loadingService);
Object userObject = getUserObjectOrNull(path, pathIndex);
if (userObject != null) {
@@ -158,7 +159,10 @@ public class DatabaseSchemaLoader {
String table = resultSet.getString("TABLE_NAME");
String schema = resultSet.getString("TABLE_SCHEM");
String catalog = resultSet.getString("TABLE_CAT");
- packTable(table, catalog == null ? catalogName : catalog,
schema, null);
+ String realCatalogName = catalog == null ||
!adapter.supportsCatalogsOnReverseEngineering()
+ ? catalogName
+ : catalog;
+ packTable(table, realCatalogName, schema, null);
}
if (!hasTables && (catalogName != null || schemaName != null))
{
packFilterContainer(catalogName, schemaName);