Before this commit, exceptionOverrideClass may be loaded by different ClassLoader, and two instances are created but only the latter one is used. This commit make sure the class will only loaded once and only one instance is created.
Fix GH-2124
Fix GH-2171
* Don't try to cast metric registry before it is checked for null
* Simplify the condition check
* Use previously obtained object instead of calling the same getter one more time
---------
Co-authored-by: Alexander Sinuskin <Alexander.Sinuskin.ext@deutsche-boerse.com>
TRANSACTION_LAST_COMMITTED - This allows a readonly user to access a row and read the last commited data while Informix has an open lock against the data.
Unlike TRANSACTION_READ_UNCOMMITTED which would also accomplish the same but would end up allowing dirty reads. This would lead to us reading data that's potentially either rolledback or never actually commited.
TRANSACTION_CURSOR_STABILITY - Cursor stability will place a lock on a row as it's fetched which ensures that the data doesn't change while the program reads the data.
Documentation for cursor stability can be found here https://www.ibm.com/docs/en/informix-servers/12.10?topic=level-informix-cursor-stability-isolation
Documentation on Informix transaction isolation levels are here https://www.ibm.com/docs/en/informix-servers/12.10?topic=database-informix-environment-variables-informix-jdbc-driver
Co-authored-by: Liam Sorsby <liam.sorsby@skybettingandgaming.com>
Previously, this matches implementation was ignoring the `name` passed
in and instead comparing the *literal* `"testMetricWait.pool.Wait"` to
the dynamically-created
`MetricRegistry.name("testMetricWait", "pool", "Wait")`.
This commit updates the matches implementation to instead compare the
`name` passed in.
This brings it in line with the other implementations in the same file.
This update avoids an issue in at least JDK 18 in which
`java.net.URLStreamHandler.equals` was inaccessible due to module
java.base not "opens java.net". See below for more detail.
[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.129 s <<< FAILURE! - in com.zaxxer.hikari.osgi.OSGiBundleTest
[ERROR] com.zaxxer.hikari.osgi.OSGiBundleTest.checkBundle Time elapsed: 0.09 s <<< ERROR!
java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Unable to make protected boolean java.net.URLStreamHandler.equals(java.net.URL,java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @484b61fc
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected boolean java.net.URLStreamHandler.equals(java.net.URL,java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @484b61fc