For instance, the following code in org.apache.calcite.linq4j.EnumerableDefaults.WrapMap
produces the following exception with org.jboss:jandex:2.0.3.Final
Note: Calcite bytecode is perfectly valid (provided a recent javac is used), however, jandex is used by Hibernate, Quarkus (and other projects), so it might result in non-tirival exceptions like IllegalStateException: Class extends type annotation appeared on a non class target while users would have absolutely no clue which class causes failure and why.
I suggest we parse Calcite-produced classes with Jandex, so we know when incompatibility happens.
Here's the same case for pgjdbc/pgjdbc: https://github.com/pgjdbc/pgjdbc/pull/2010
|Add optional bytecode verification with Jandex||Closed||