[ 
https://issues.apache.org/jira/browse/CAY-2159?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikita Timofeev updated CAY-2159:
---------------------------------
    Fix Version/s: 4.3.M1

> 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: Sub-task
>          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
>             Fix For: 4.3.M1
>
>
> 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
(v8.20.10#820010)

Reply via email to