Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello Talend Support Team,
I am encountering a persistent issue when trying to load data from Databricks via JDBC in Talend 8 using Java 17. Below is a brief summary of the problem and the steps I have already taken:
Environment & Setup:
Talend 8 (Studio version 2024-10)
Java 17 (HotSpot JDK 17.0.11)
Databricks JDBC driver 2.6.40
Connection string (example):
bash
Copy code
jdbc:databricks://adb-3178472978883225.5.azuredatabricks.net:443/default
;transportMode=http
;ssl=1
;httpPath=sql/protocolv1/o/3178472978883225/1218-184617-zyvhht5e
;AuthMech=3
;UID=token
;PWD=<token>
;EnableArrow=0;
Error Description: When attempting to run a job (tDBInput or similar component) that queries Databricks, the job fails with an InaccessibleObjectException
. The relevant part of the error log reads:
vbnet
Copy code
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalStateException: java.lang.reflect.InaccessibleObjectException:
Unable to make java.lang.invoke.MethodHandles$Lookup(java.lang.Class) accessible:
module java.base does not "opens java.lang.invoke" to unnamed module @xxxxxx
We have already:
Added all standard -add-opens
lines to our Talend .ini
file, including:and verified the .ini
content.
csharp
Copy code
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
...
Restarted Talend and confirmed the environment is using Java 17.
Tried setting EnableArrow=0
in the connection string to avoid Arrow-based reflection issues.
Checked that other Talend jobs (not connecting to Databricks) run fine under the same Java version.
Attempted to ensure the same VM arguments are applied both in Talend Studio and when exporting/running the job externally.
Despite these measures, the reflection error persists specifically for the Databricks connection. We suspect the required --add-opens
are not being fully honored, or there is a conflict between the Databricks driver’s reflection calls and Talend’s module settings under Java 17.
Request for Assistance: Could you please advise on:
-add-opens
flags are applied to jobs that use the Databricks driver, particularly when run from the Talend Studio or CommandLine/Talend Management Console.I greatly appreciate your help. If you need more logs or environment details, please let me know. Thank you in advance for your guidance on this matter.
Best regards,
Lukas Hruska
Data Engineer
NN Group Slovakia
Hello @LukasHruska did you have any feedback or anything? I´m having exactly same issue here
Hello,
A remark : JVM options are not inherited ..
So, adding some JVM options in the Talend Studio ini file will not "help" for jobs launched from Studio (A new Java process is launched by the Studio and the JVM properties used by this "new" Java process are the one specified in the JVM Arguments)
Kind regards
Denis