Skip to content

Commit 0f2d39a

Browse files
authored
Merge pull request #31770 from yrodiere/i31624-oracle-and-elasticsearch
Fix native compilation when using quarkus-jdbc-oracle with elasticsearch-java
2 parents 6c4b4bc + 7706283 commit 0f2d39a

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

extensions/jdbc/jdbc-oracle/deployment/src/main/java/io/quarkus/jdbc/oracle/deployment/OracleMetadataOverrides.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.quarkus.deployment.builditem.nativeimage.NativeImageAllowIncompleteClasspathBuildItem;
1010
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
1111
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
12+
import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
1213
import 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"));

extensions/jdbc/jdbc-oracle/deployment/src/main/java/io/quarkus/jdbc/oracle/deployment/OracleNativeImage.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import io.quarkus.deployment.annotations.BuildProducer;
44
import io.quarkus.deployment.annotations.BuildStep;
55
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
6-
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
76

87
/**
98
* @author Sanne Grinovero <[email protected]>
@@ -35,10 +34,4 @@ void reflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
3534
reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "com.sun.jndi.rmi.registry.RegistryContextFactory"));
3635
}
3736

38-
@BuildStep
39-
void runtimeInitialization(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
40-
runtimeInitializedClass
41-
.produce(new RuntimeInitializedClassBuildItem("oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource"));
42-
}
43-
4437
}

0 commit comments

Comments
 (0)