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)

Reply via email to