SQLException thrown from user function kills network connection
---------------------------------------------------------------
Key: DERBY-3390
URL: https://issues.apache.org/jira/browse/DERBY-3390
Project: Derby
Issue Type: Bug
Components: Network Server
Affects Versions: 10.3.2.1, 10.3.1.4, 10.2.2.0, 10.2.1.6, 10.1.3.1
Reporter: Rick Hillegas
Thanks to Frank Griffin for pointing out this issue in a derby-dev email
thread:
http://www.nabble.com/SQLException-thrown-from-Table-Function-ResultSet-to15241332.html#a15241332
If a user-coded function throws a SQLException, Derby will try to cast the
exception to a Derby exception class before shipping the exception to the
network client. This raises a ClassCastException and kills the connection. I
have observed this in 10.4, 10.3, 10.2, and 10.1. You can reproduce this
problem with the following function class and sql script.
The function class:
import java.sql.*;
public class BadFunction
{
/**
* <p>
* This function just throws a SQLException.
* </p>
*/
public static int badFunction()
throws SQLException
{
throw new SQLException( "I refuse to return an int!" );
}
}
Here is the SQL script:
connect 'jdbc:derby://localhost:8246/derby10.4';
drop function badFunction;
create function badFunction()
returns int
language java
parameter style java
no sql
external name 'BadFunction.badFunction'
;
values ( badFunction() );
values ( badFunction() );
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.