The JDO query implementation class JDOQLQuery in package org.datanucleus.store.rdbms.query calls method cancelTaskObject, that delegates to the JDBC PreparedStatement.cancel method. The code catches a SQLException thrown by the datastore method and logs a warning message:
I propose to change method cancelTaskObject to rethrow the datastore exception wrapped into an JDOUnsupportedOptionException in case of a SQLFeatureNotSupportedException and NucleusDataStoreException otherwise:
You might consider removing the boolean return of method cancelTaskObject since the caller just uses the return value for a debug log message.
To reproduce the issue please go to the Apache JDO TCK github project https://github.com/apache/db-jdo and use branch JDO-836. Run the following command that executes the TCK test class QueryCancel:
mvn -Djdo.tck.cfglist=cancel.conf clean install
The JDO query implementation class JDOQLQuery in package org.datanucleus.store.rdbms.query calls method cancelTaskObject, that delegates to the JDBC PreparedStatement.cancel method. The code catches a SQLException thrown by the datastore method and logs a warning message:
I propose to change method cancelTaskObject to rethrow the datastore exception wrapped into an JDOUnsupportedOptionException in case of a SQLFeatureNotSupportedException and NucleusDataStoreException otherwise:
You might consider removing the boolean return of method cancelTaskObject since the caller just uses the return value for a debug log message.
To reproduce the issue please go to the Apache JDO TCK github project
https://github.com/apache/db-jdo
and use branchJDO-836
. Run the following command that executes the TCK test class QueryCancel:mvn -Djdo.tck.cfglist=cancel.conf clean install