Affects Version/s: 22.214.171.124
Fix Version/s: 126.96.36.199
Windows 10 (10.0) 64bit
Java 1.8.0_144 (Oracle Corporation) 64bit
Updating the MySQL driver to 6.0.2 breaks existing datasource connections.
cannot load class through its string name, because no definition for the class with the specified name [org.gjt.mm.mysql.Driver] could be found caused by (java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver;java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver not found by lucee.core ;)
The issue is that that class name of the driver has changed.
old class: org.gjt.mm.mysql.Driver
new class: com.mysql.cj.jdbc.Driver
Workaround: recreate the datasource. When you recreate the datasource it will use the new class.
Alternative workaround: search and replace class="org.gjt.mm.mysql.Driver" -> class="com.mysql.cj.jdbc.Driver" in the <data-source> tags in lucee-server.xml. After doing this, all datasources verify and sites seem to work.
I also additionally then got this error which appears to be coming from Hibernate ORM (possibly this should be a different ticket?):
Lucee 188.8.131.52 Error (java.sql.SQLException)
Message Column name pattern can not be NULL or empty.
This was down to a change in default value of the "nullNamePatternMatchesAll" connection property changed between versions 5.1.38 and 6.0.2:
Workaround: Adding &nullNamePatternMatchesAll=true to the end of the custom= param in the <datasource> definition in lucee-server.xml fixes this.