Subject | After UDF exception, the current connection stops working |
---|---|
Author | vmdd_tech |
Post date | 2003-12-31T12:05:06Z |
I have reported the bug in the substr and other string functions
in the Firebird general group. This occurs when the string argument
is longer than 80 characters. This bug helps expose another bug (???)
in the JDBC driver.
To reproduce the problem, use some JDBC front-end to execute the
following:
drop table test;
create table test (news varchar(255));
insert into test (news) values ('this string is
loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooon
ger than 80 characters');
select substr(news,1,2) from test;
The select statement will cause the error:
java.lang.NullPointerException
at org.firebirdsql.jgds.GDS_Impl.isc_dsql_prepare
(GDS_Impl.java:1152)
at org.firebirdsql.jca.FBManagedConnection.prepareSQL
(FBManagedConnectio
n.java:767)
at org.firebirdsql.jdbc.FBConnection.prepareSQL
(FBConnection.java:1110)
at org.firebirdsql.jdbc.FBStatement.prepareFixedStatement
(FBStatement.ja
va:998)
at org.firebirdsql.jdbc.FBStatement.internalExecute
(FBStatement.java:986
)
at org.firebirdsql.jdbc.FBStatement.execute
(FBStatement.java:518)
From this point on, you can not execute any other SQL commands.
For example,
select count(*) from another_table
will generate the same trace as above.
The only recourse I have is to close the connection and then
create the connection, statement again.
Ben
in the Firebird general group. This occurs when the string argument
is longer than 80 characters. This bug helps expose another bug (???)
in the JDBC driver.
To reproduce the problem, use some JDBC front-end to execute the
following:
drop table test;
create table test (news varchar(255));
insert into test (news) values ('this string is
loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooon
ger than 80 characters');
select substr(news,1,2) from test;
The select statement will cause the error:
java.lang.NullPointerException
at org.firebirdsql.jgds.GDS_Impl.isc_dsql_prepare
(GDS_Impl.java:1152)
at org.firebirdsql.jca.FBManagedConnection.prepareSQL
(FBManagedConnectio
n.java:767)
at org.firebirdsql.jdbc.FBConnection.prepareSQL
(FBConnection.java:1110)
at org.firebirdsql.jdbc.FBStatement.prepareFixedStatement
(FBStatement.ja
va:998)
at org.firebirdsql.jdbc.FBStatement.internalExecute
(FBStatement.java:986
)
at org.firebirdsql.jdbc.FBStatement.execute
(FBStatement.java:518)
From this point on, you can not execute any other SQL commands.
For example,
select count(*) from another_table
will generate the same trace as above.
The only recourse I have is to close the connection and then
create the connection, statement again.
Ben