Empty arrays cause SQLExceptions when using Array.getArray

From: Doug Fields <dfields-postgresql(at)pexicom(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Empty arrays cause SQLExceptions when using Array.getArray
Date: 2002-02-21 00:12:14
Message-ID: 5.1.0.14.2.20020220190907.03550840@mail.pexicom.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello, I have the following table and values:

=# \d array_test
Table "array_test"
Attribute
| Type | Modifier
-----------+-----------+-------------------------------------------------------
id | integer | not null default nextval('"array_test_id_seq"'::text)
first | integer[] |
second | integer[] |
number | integer |
Index: array_test_pkey

=# select * from array_test;
id | first | second | number
----+------------+-----------------------------------+--------
1 | {1,2,3} | {4,5,6} | 7
2 | {10,20,30} | {40,50,60} | 70
3 | {100,200} | {300,400,500,600} | 700
4 | {1000} | {2000,3000,4000,5000,6000} | 7000
5 | {} | {10000,2000,3000,4000,5000,6000} | 70000
6 | | {100000,2000,3000,4000,5000,6000} | 700000
7 | {9,8,7} | {6,5,4} | 8482
(7 rows)

When I am getting row 5, the ResultSet.getArray().getArray() call fails:

DbArrayTest.doTest: SQLException: Bad Integer
DbArrayTest.doTest: SQLState: null
DbArrayTest.doTest: VendorError: 0
Bad Integer
at org.postgresql.jdbc2.ResultSet.toInt(ResultSet.java:1481)
at org.postgresql.jdbc2.Array.getArray(Array.java:127)
at org.postgresql.jdbc2.Array.getArray(Array.java:54)
at com.pexicom.test.DbArrayTest.doTest(DbArrayTest.java:55)

Code snippet in question:

Array arrayObj;
int[] array;
while (rs.next()) {
System.out.println("\nColumn 1: " + rs.getInt(1));
arrayObj = rs.getArray(2);
if (arrayObj != null) {
array = (int[])arrayObj.getArray();
System.out.println("Column 2: " + arrayObj);

It fails at the arrayObj.getArray() call.

This shouldn't happen; it should return a zero-length array.

Thanks,

Doug

Browse pgsql-jdbc by date

  From Date Subject
Next Message Doug Fields 2002-02-21 00:54:29 [PATCH] Empty arrays cause SQLExceptions when using Array.getArray
Previous Message Doug Fields 2002-02-21 00:04:01 Setting array values in JDBC (Driver 7.2)