Summary:
I'm getting an exception from the ResultSet returned from
getGeneratedKey() from a batch insert PreparedStatement. When I use
any of the postgresql-9.2-100X.jdbc4.jar drivers I get exceptions, but
when I use postgresql-9.1-902.jdbc4.jar it works.
Has anyone seen anything like this? How can I debug this problem
further? How should I go about determining if this is a bug?
Exception:
java.lang.ArrayIndexOutOfBoundsException: 4
at org.postgresql.util.ByteConverter.int8(ByteConverter.java:29)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2150)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.internalGetObject(AbstractJdbc2ResultSet.java:142)
at org.postgresql.jdbc3.AbstractJdbc3ResultSet.internalGetObject(AbstractJdbc3ResultSet.java:36)
at org.postgresql.jdbc4.AbstractJdbc4ResultSet.internalGetObject(AbstractJdbc4ResultSet.java:296)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getObject(AbstractJdbc2ResultSet.java:2703)
...
Usually followed later by this exception:
org.postgresql.util.PSQLException: Bad value for type long : ,
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2971)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2163)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.internalGetObject(AbstractJdbc2ResultSet.java:142)
at org.postgresql.jdbc3.AbstractJdbc3ResultSet.internalGetObject(AbstractJdbc3ResultSet.java:36)
at org.postgresql.jdbc4.AbstractJdbc4ResultSet.internalGetObject(AbstractJdbc4ResultSet.java:296)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getObject(AbstractJdbc2ResultSet.java:2703)
...
Setup:
OS: Ubuntu 10.04
PG: 9.2
JDBC: postgresql-9.2-1001.jdbc4.jar
I'm also using PostGIS 2.0.1 jar, Apache Commons DBUtils, and DBCP.
I *believe* that it must have something to do with concurrent database
connections or connection reuse, but I haven't been successful at
creating a test case, despite trying for several days now.
Suggestions? I've got a mountain of data - if anyone needs more details.
--
Pete