-
Notifications
You must be signed in to change notification settings - Fork 73
Description
Describe the bug
Say I have a connection string in the following manner: jdbc:aws-wrapper:mariadb://db-host/db_name
To me, this implies that I only need the mariadb-java-client library.
However, given the MariaDBExceptionHandler extends MySQLExceptionHandler creates an implied dependency on mysql-connector-j. Because MySQLExceptionHandler has a reference to com.mysql.cj.exceptions.CJException
However, we deliberately want to avoid using the mysql-connector-j driver due to the GPL license and instead want to only mariadb-java-client. Therefore, MariaDBExceptionHandler should be written in a manner to not require mysql-connector-j.
Expected Behavior
I expected proper exception handling.
What plugins are used? What other connection properties were set?
wrapperPlugins=iam
Current Behavior
Today, I get a class not defined exception
Caused by: java.lang.NoClassDefFoundError: com/mysql/cj/exceptions/CJException
at software.amazon.jdbc.exceptions.MySQLExceptionHandler.isLoginException(MySQLExceptionHandler.java:78)
at software.amazon.jdbc.exceptions.ExceptionManager.isLoginException(ExceptionManager.java:35)
Reproduction Steps
get a connection error while running the mariadb driver
Possible Solution
Rewrite the MariaDBExceptionHandler to not reference com.mysql.cj.exceptions.CJException
Additional Information/Context
No response
The AWS Advanced JDBC Driver version used
2.5.4
JDK version used
openjdk 23.0.2 2025-01-21 OpenJDK Runtime Environment Zulu23.32+11-CA (build 23.0.2+7) OpenJDK 64-Bit Server VM Zulu23.32+11-CA (build 23.0.2+7, mixed mode, sharing)
Operating System and version
ProductName: macOS ProductVersion: 15.3.1 BuildVersion: 24D70