Execution of Information Link created from Apache Drill data source fails with error "An Internal Error has occurred:unexpected exception" caused by UnsupportedOperationException cancel().
book
Article ID: KB0081036
calendar_today
Updated On:
Products
Versions
Spotfire Analyst
All Versions
Description
In Information Designer, when a Information Link is created on a Table in Apache Drill data source, execution of Information Link may fail with the following error
ERROR 2018-05-07T08:44:51,824+0200 [291661, #5, #201]
api.common.InformationModelServiceCommon: An Internal Error has occurred. com.spotfire.ws.dat.OperatorException: unexpected exception
at com.spotfire.ws.api.common.InformationModelServiceCommon.wrapException(InformationModelServiceCommon.java:688) ~[server-is.jar:?]
... 1 more
Caused by: java.lang.UnsupportedOperationException
at oadd.org.apache.calcite.avatica.AvaticaResultSet.cancel(AvaticaResultSet.java:168) ~[drill-jdbc-all-1.12.0.jar:1.12.0]
at org.apache.drill.jdbc.impl.DrillResultSetImpl.cancel(DrillResultSetImpl.java:115) ~[drill-jdbc-all-1.12.0.jar:1.12.0]
at oadd.org.apache.calcite.avatica.AvaticaStatement.cancel(AvaticaStatement.java:243) ~[drill-jdbc-all-1.12.0.jar:1.12.0]
...
...
This error is caused when a DBMS or JDBC Driver does not support the JDBC cancel() method.
Resolution
Whenever information link query takes longer than expected time, Spotfire executes a JDBC cancel() method which is called on Statement, ResultSet etc objects. This operation should be compatible with DBMS and the driver. But Apache drill JDBC driver till version 1.12 does not support cancel() operation and that will cause information link to fail with the above error.
To avoid this issue, install Apache Drill JDBC driver 1.13 or later, which supports the 'cancel' operation.
Issue/Introduction
In Information Designer, when a Information Link is created on a Table in Apache Drill data source, execution of Information Link may fail if the driver does not support JDBC cancel operation.