Nikita Timofeev created CAY-2159: ------------------------------------ Summary: Problems with reverse engineering stored procedures with latest MySQL JDBC driver. Key: CAY-2159 URL: https://issues.apache.org/jira/browse/CAY-2159 Project: Cayenne Issue Type: Bug Components: Modeler, Non-GUI Tools Affects Versions: 4.0.M4 Environment: MySQL version: 5.7.16 (docker image) JDBC driver: 6.0.5 Reporter: Nikita Timofeev Priority: Minor
According to this https://dev.mysql.com/doc/connector-j/6.0/en/connector-j-properties-changed.html default value of nullNamePatternMatchesAll parameter has changed to false. This leads to the exception in Reverse Engineering when using latest JDBC MySQL connector. This can be corrected by setting nullNamePatternMatchesAll=true in the connection URL. May be we need to change null parameters to explicit wildcard "%". But this requires investigation for other databases. Stack trace for the thrown Exception: INFO: Exception on reverse engineering java.sql.SQLException: Procedure name pattern can not be NULL or empty. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:545) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:505) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:479) at com.mysql.cj.jdbc.DatabaseMetaData.getProceduresAndOrFunctions(DatabaseMetaData.java:3411) at com.mysql.cj.jdbc.DatabaseMetaData.getProcedureOrFunctionColumns(DatabaseMetaData.java:3303) at com.mysql.cj.jdbc.DatabaseMetaData.getProcedureColumns(DatabaseMetaData.java:3240) at org.apache.cayenne.dbsync.reverse.db.DbLoader.loadProceduresColumns(DbLoader.java:416) at org.apache.cayenne.dbsync.reverse.db.DbLoader.loadProceduresColumns(DbLoader.java:408) at org.apache.cayenne.dbsync.reverse.db.DbLoader.loadProcedures(DbLoader.java:394) at org.apache.cayenne.dbsync.reverse.db.DbLoader.load(DbLoader.java:351) at org.apache.cayenne.tools.dbimport.DefaultDbImportAction.load(DefaultDbImportAction.java:432) at org.apache.cayenne.tools.dbimport.DefaultDbImportAction.execute(DefaultDbImportAction.java:161) at org.apache.cayenne.modeler.dialog.db.DbLoaderHelper$LoadDataMapTask.execute(DbLoaderHelper.java:373) at org.apache.cayenne.modeler.util.LongRunningTask.internalExecute(LongRunningTask.java:213) at org.apache.cayenne.modeler.util.LongRunningTask$1.run(LongRunningTask.java:101) at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.3.4#6332)