99import io .quarkus .deployment .builditem .nativeimage .NativeImageAllowIncompleteClasspathBuildItem ;
1010import io .quarkus .deployment .builditem .nativeimage .ReflectiveClassBuildItem ;
1111import io .quarkus .deployment .builditem .nativeimage .RuntimeInitializedClassBuildItem ;
12+ import io .quarkus .deployment .builditem .nativeimage .RuntimeReinitializedClassBuildItem ;
1213import io .quarkus .maven .dependency .ArtifactKey ;
1314
1415/**
@@ -66,7 +67,8 @@ void build(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
6667 }
6768
6869 @ BuildStep
69- void runtimeInitializeDriver (BuildProducer <RuntimeInitializedClassBuildItem > runtimeInitialized ) {
70+ void runtimeInitializeDriver (BuildProducer <RuntimeInitializedClassBuildItem > runtimeInitialized ,
71+ BuildProducer <RuntimeReinitializedClassBuildItem > runtimeReinitialized ) {
7072 //These re-implement all the "--initialize-at-build-time" arguments found in the native-image.properties :
7173
7274 // Override: the original metadata marks the drivers as "runtime initialized" but this makes it incompatible with
@@ -93,10 +95,14 @@ void runtimeInitializeDriver(BuildProducer<RuntimeInitializedClassBuildItem> run
9395 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.net.nt.TcpMultiplexer" ));
9496 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.net.nt.TcpMultiplexer" ));
9597 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.net.nt.TcpMultiplexer$LazyHolder" ));
96- runtimeInitialized
97- .produce (new RuntimeInitializedClassBuildItem ("oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource" ));
98- runtimeInitialized .produce (new RuntimeInitializedClassBuildItem (
98+
99+ // Needs to be REinitialized to avoid problems when also using the Elasticsearch Java client
100+ // See https://github.com/quarkusio/quarkus/issues/31624#issuecomment-1457706253
101+ runtimeReinitialized .produce (new RuntimeReinitializedClassBuildItem (
102+ "oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource" ));
103+ runtimeReinitialized .produce (new RuntimeReinitializedClassBuildItem (
99104 "oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser" ));
105+
100106 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.jdbc.xa.client.OracleXADataSource" ));
101107 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.jdbc.replay.OracleXADataSourceImpl" ));
102108 runtimeInitialized .produce (new RuntimeInitializedClassBuildItem ("oracle.jdbc.datasource.OracleXAConnection" ));
0 commit comments