You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Nikita Timofeev (JIRA)" <ji...@apache.org> on 2016/12/05 15:42:58 UTC

[jira] [Created] (CAY-2159) Problems with reverse engineering stored procedures with latest MySQL JDBC driver.

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)