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)

Reply via email to