Blob getBinaryStream issue.

Поиск
Список
Период
Сортировка
От Pete Lewin-Harris
Тема Blob getBinaryStream issue.
Дата
Msg-id 03bc01c45936$ba49a0b0$6680a8c0@pete
обсуждение исходный текст
Ответы Re: Blob getBinaryStream issue.  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
I'm getting an odd result when I try and get the length of a blob after I
have closed it's binary stream. In the snippet below, the final line throws
a PSQL Exception with the message 'FastPath call returned ERROR: invalid
large-object descriptor: 0'. If the final line is removed and
getBinaryStream called again, the second stream fails on first read with a
null pointer exception.

Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery("SELECT blobdata from mytable where id =
1");

if (rs.next())
{
    Blob blob = rs.getBlob(1);
    InputStream is = blob.getBinaryStream();
    is.close();

    long len = blob.length();
}

Two questions, really.

Firstly, is it a bug that multiple calls to getBinaryStream do not return
separate InputStream objects or is it just the way it works and I need to
re-get the blob if I want to read the stream again?

Secondly, If this is the correct behaviour the shouldn't the exceptions
thrown be slightly more friendly? Perhaps calling getBinaryStream after the
stream has been closed should return null?


cheers, Pete




В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: ConnectionPooling executeUpdate
Следующее
От: ALBERDI Ion
Дата:
Сообщение: PoolingDataSource executeUpdate