WhiteRabbit is a small application that can be used to analyse the structure and contents of a database as preparation for designing an ETL. It comes with RabbitInAHat, an application for interactive design of an ETL to the OMOP Common Data Model with the help of the the scan report generated by White Rabbit.
Describe the bug
There is a documented problem with the Snowflake JDBC driver when running WhiteRabbit with a JDK/JRE version 16 or newer.
See here for an in depth description and the advised short term workarounds, see here for the issue on github
To Reproduce
Steps to reproduce the behavior:
Using WhiteRabbit either throuhg the GUI or CLI, when WhiteRabbit attempts to connect to Snowflake, a failure will be reported with a stack trace. This stack trace will contain a fragment similar to the following:
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @40f9161a
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at net.snowflake.client.jdbc.internal.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:87)
Expected behavior
WhiteRabbit should connect to Snowflake and continue as normal.
Workaround
Please implement the workaround as documented here (under Solution by setting the environment variable JAVA_OPTS to the appropriate value for JDK 16 or JDK 17. Please not that JAVA_OPTS should be set and available in the environment before you start WhiteRabbit.
Additional context
This only applies to WhiteRabbit v1.0.0 and higher (and the release candidates).
This issue needs to be solved in the dependencies mentioned by Snowflake. There is no universal solution available that would work in all Java/JDK versions supported by WhiteRabbit.
Describe the bug There is a documented problem with the Snowflake JDBC driver when running WhiteRabbit with a JDK/JRE version 16 or newer. See here for an in depth description and the advised short term workarounds, see here for the issue on github
To Reproduce Steps to reproduce the behavior: Using WhiteRabbit either throuhg the GUI or CLI, when WhiteRabbit attempts to connect to Snowflake, a failure will be reported with a stack trace. This stack trace will contain a fragment similar to the following:
Expected behavior WhiteRabbit should connect to Snowflake and continue as normal.
Workaround Please implement the workaround as documented here (under Solution by setting the environment variable
JAVA_OPTS
to the appropriate value for JDK 16 or JDK 17. Please not thatJAVA_OPTS
should be set and available in the environment before you start WhiteRabbit.Additional context This only applies to WhiteRabbit v1.0.0 and higher (and the release candidates).
This issue needs to be solved in the dependencies mentioned by Snowflake. There is no universal solution available that would work in all Java/JDK versions supported by WhiteRabbit.