A result was returned by the statement, when none was expected
JDBC-ers,
We are doing an INSERT and occasionally Postgres throws a SQLException
because there are unexpected results (see stacktrace below), maybe 10%
of the time,
Any idea why this would happen when it works over 90% of the time?
However, it appears the insert is completed successfully.
We have looked at the source code for ResultSet.java and noticed
the method reallyResultSet() returns true if any of the fields are non-null.
I hope that helps in debugging.
Also, we are running Postgres 7.1 with JDK1.2.1.
Regards,
Eric
--------------------------------------------------------------------------
IINSERT INTO bad_urls(ID,DATA,ATTEMPTS,REASON) VALUES
(3375,'http://www.oit.itd.umich.edu/projects/adw2k/chordata/aves.html',0,'Unknown
Host')
A result was returned by the statement, when none was expected.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:98)
at org.postgresql.util.PSQLException.<init>(PSQLException.java:23)
at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:80)
at
org.postgresql.jdbc2.PreparedStatement.executeUpdate(PreparedStatement.java:122)
at InsertError.record(InsertError.java:98)
at InsertError.record(InsertError.java:69)
at wbCheckUrl$CheckThread.run(wbCheckUrl.java:307)
Eric,
Which version of the driver are you using? Also do you have logs from
the postgres backend?
My suspicion is something in the data is causing the problem, what I
don't know, but that's my guess.
Dave
-----Original Message-----
From: pgsql-jdbc-owner@postgresql.org
[mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Eric Scroger
Sent: Tuesday, March 05, 2002 5:28 PM
To: pgsql hackers; pgsql-jdbc@postgresql.org
Cc: ed@carl.org
Subject: [JDBC] A result was returned by the statement, when none was
expected
JDBC-ers,
We are doing an INSERT and occasionally Postgres throws a SQLException
because there are unexpected results (see stacktrace below), maybe 10%
of the time,
Any idea why this would happen when it works over 90% of the time?
However, it appears the insert is completed successfully.
We have looked at the source code for ResultSet.java and noticed the
method reallyResultSet() returns true if any of the fields are non-null.
I hope that helps in debugging.
Also, we are running Postgres 7.1 with JDK1.2.1.
Regards,
Eric
------------------------------------------------------------------------
--
IINSERT INTO bad_urls(ID,DATA,ATTEMPTS,REASON) VALUES
(3375,'http://www.oit.itd.umich.edu/projects/adw2k/chordata/aves.html',0
,'Unknown
Host')
A result was returned by the statement, when none was expected.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:98)
at org.postgresql.util.PSQLException.<init>(PSQLException.java:23)
at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:80)
at
org.postgresql.jdbc2.PreparedStatement.executeUpdate(PreparedStatement.j
ava:122)
at InsertError.record(InsertError.java:98)
at InsertError.record(InsertError.java:69)
at wbCheckUrl$CheckThread.run(wbCheckUrl.java:307)
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
Dave,
Eric,
Which version of the driver are you using? Also do you have logs from
the postgres backend?
We are using driver jar file jdbc7.1-1.2.jar.
I reproduced the problem with postgresql configured the debug setting to 16.
The backend debug logs are attached to this as they are kinda long
(postback.log).
I'm not sure it is data directly, but it does always fail on the same data.
One thing I do know is the problem occurs when we are using
PreparedStatments.
If I put the same SQL statement into a separate statement it works fine.
For your info, here is the code related to the PreparedStatements.
----------------------------------------------------
PreparedStatement psInsertError = null;
psInsertError = conn.prepareStatement(
"INSERT INTO " + tabName
+ "(ID,DATA,ATTEMPTS,REASON) VALUES (?,?,?,?)" );
psInsertError.setLong(1,id);
psInsertError.setString(2,data);
psInsertError.setInt(3,attempts);
psInsertError.setString(4,reason);
psInsertError.executeUpdate();
----------------------------
Thanks for your suggestions.
Eric
Show quoted text
My suspicion is something in the data is causing the problem, what I
don't know, but that's my guess.Dave
-----Original Message-----
From: pgsql-jdbc-owner@postgresql.org
[mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Eric Scroger
Sent: Tuesday, March 05, 2002 5:28 PM
To: pgsql hackers; pgsql-jdbc@postgresql.org
Cc: ed@carl.org
Subject: [JDBC] A result was returned by the statement, when none was
expectedJDBC-ers,
We are doing an INSERT and occasionally Postgres throws a SQLException
because there are unexpected results (see stacktrace below), maybe 10%
of the time,
Any idea why this would happen when it works over 90% of the time?
However, it appears the insert is completed successfully.We have looked at the source code for ResultSet.java and noticed the
method reallyResultSet() returns true if any of the fields are non-null.
I hope that helps in debugging.Also, we are running Postgres 7.1 with JDK1.2.1.
Regards,
Eric
------------------------------------------------------------------------
--IINSERT INTO bad_urls(ID,DATA,ATTEMPTS,REASON) VALUES
(3375,'http://www.oit.itd.umich.edu/projects/adw2k/chordata/aves.html',0
,'Unknown
Host')A result was returned by the statement, when none was expected.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:98)
at org.postgresql.util.PSQLException.<init>(PSQLException.java:23)
at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:80)
at
org.postgresql.jdbc2.PreparedStatement.executeUpdate(PreparedStatement.j
ava:122)
at InsertError.record(InsertError.java:98)
at InsertError.record(InsertError.java:69)
at wbCheckUrl$CheckThread.run(wbCheckUrl.java:307)---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)