| Bug #85555 | useConfigs Can't find configuration template named, in mysql-connector-java 6.x | ||
|---|---|---|---|
| Submitted: | 21 Mar 2017 7:26 | Modified: | 21 Jun 2017 1:47 |
| Reporter: | Hao Yang | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / J | Severity: | S5 (Performance) |
| Version: | 6.0.6 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | useConfigs | ||
[21 Mar 2017 12:34]
Chiranjeevi Battula
Hello Hao Yang, Thank you for the bug report. Verified this behavior on MySQL Connector / J 6.0.6. Thanks, Chiranjeevi.
[21 Jun 2017 1:47]
Daniel So
Posted by developer: Added the following entry to the Connector/J 8.0.7 changelog: "Configuration templates named by the connection property useConfigs was not recognized by Connector/J."
[27 Jun 2017 8:17]
Chiranjeevi Battula
http://bugs.mysql.com/bug.php?id=86833 marked as duplicate of this one.
[17 Oct 2018 18:06]
Sam Ottenhoff
Same error observed with Connector/J 5.1.47. No issues observed with 5.1.46.
Caused by: java.sql.SQLException: Can't find configuration template named 'maxPerformance'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:774)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:321)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:112)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:118)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:443)
at com.zaxxer.hikari.pool.HikariPool.access$200(HikariPool.java:70)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:630)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:616)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

Description: I use JDK8. com.mysql.cj.core.conf.url.ConnectionUrl.getPropertiesFromConfigFiles(String configFiles) try (InputStream configAsStream = Driver.class.getResourceAsStream("../configurations/" + configFile + ".properties")) configAsStream === null my test Code: System.out.println(com.mysql.cj.jdbc.Driver.class.getClassLoader().getResourceAsStream("com/mysql/cj/jdbc/../configurations/maxPerformance.properties")); System.out.println(com.mysql.cj.jdbc.Driver.class.getClassLoader().getResourceAsStream("com/mysql/cj/configurations/maxPerformance.properties")); In mysql-connector-java 5.x is OK: Properties com.mysql.jdbc.NonRegisteringDriver.parseURL(String url, Properties defaults) InputStream configAsStream = getClass().getResourceAsStream("configs/" + configName + ".properties"); How to repeat: public static void main(String[] args) { com.mysql.cj.core.conf.url.ConnectionUrl.getPropertiesFromConfigFiles("maxPerformance"); } Suggested fix: com.mysql.cj.core.conf.url.ConnectionUrl.getPropertiesFromConfigFiles "../configurations/" <== "/com/mysql/cj/configurations/" try (InputStream configAsStream = Driver.class.getResourceAsStream("../configurations/" + configFile + ".properties")) try (InputStream configAsStream = Driver.class.getResourceAsStream("/com/mysql/cj/configurations/" + configFile + ".properties"))