Alexander Veit created IGNITE-28639:
---------------------------------------
Summary: IgniteJdbcThinDriver registers itself as JDBC driver but
fails to be class-loaded
Key: IGNITE-28639
URL: https://issues.apache.org/jira/browse/IGNITE-28639
Project: Ignite
Issue Type: Bug
Environment: Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie
openjdk 21.0.10 2026-01-20 LTS
OpenJDK Runtime Environment Temurin-21.0.10+7 (build 21.0.10+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.10+7 (build 21.0.10+7-LTS, mixed mode,
sharing)
Reporter: Alexander Veit
ignite-core-2.18.0.jar on the class path; IgniteJdbcThinDriver registers itself
as JDBC driver.
If the application tries to load another driver java.sql.DriverManager iterates
through the registered drivers an loads the driver classes.
The IgniteJdbcThinDriver cannot be loaded and throws an
ExceptionInInitializerError which is not handled by the DriverManager.
The IgniteJdbcThinDriver is neither needed nor requested by the application.
{code:java}
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.ignite.IgniteJdbcThinDriver
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:536)
at java.base/java.lang.Class.forName(Class.java:515)
at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:559)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:680)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:230)
...
Caused by: java.lang.ExceptionInInitializerError: Exception
java.lang.ExceptionInInitializerError [in thread "Test worker"]
at
org.apache.ignite.internal.util.IgniteUtils.<clinit>(IgniteUtils.java:549)
at
org.apache.ignite.lang.IgniteProductVersion.fromString(IgniteProductVersion.java:312)
at
org.apache.ignite.internal.IgniteVersionUtils.<clinit>(IgniteVersionUtils.java:94)
at
org.apache.ignite.IgniteJdbcThinDriver.<clinit>(IgniteJdbcThinDriver.java:140)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
at
java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
at
java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at
java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789)
at
java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
at java.sql/java.sql.DriverManager$2.run(DriverManager.java:619)
at java.sql/java.sql.DriverManager$2.run(DriverManager.java:599)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at
java.sql/java.sql.DriverManager.ensureDriversInitialized(DriverManager.java:599)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:671)
... 55 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)