From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Chad David <davidc(at)lodge(dot)guild(dot)ab(dot)ca>, peter(at)retep(dot)org(dot)uk |
Cc: | PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>, PostgreSQL jdbc list <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: [PATCHES] BlobInputStream.java patch |
Date: | 2001-03-20 00:32:31 |
Message-ID: | 200103200032.TAA14971@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc pgsql-patches |
Peter, can you comment on this?
> The current implementation of BlobInputStream does
> not properly handle 8-bit unsigned data as it blindly
> casts the byte to an int, which java most helpfully
> promotes to a signed type. This causes problems when
> you can only return -1 to indicated EOF.
>
> The following patch fixes the bug and has been tested
> locally on image data.
>
> Chad David
> Guild Software Inc.
> davidc(at)guild(dot)ab(dot)ca
>
>
> *** BlobInputStream.java Thu Feb 22 11:11:23 2001
> --- BlobInputStream.patched Thu Feb 22 11:10:38 2001
> ***************
> *** 58,73 ****
> */
> public int read() throws java.io.IOException {
> try {
> ! if(buffer==null || bpos>=buffer.length) {
> buffer=lo.read(bsize);
> bpos=0;
> }
>
> // Handle EOF
> ! if(bpos>=buffer.length)
> return -1;
>
> ! return (int) buffer[bpos++];
> } catch(SQLException se) {
> throw new IOException(se.toString());
> }
> --- 58,81 ----
> */
> public int read() throws java.io.IOException {
> try {
> ! if (buffer == null || bpos >= buffer.length) {
> buffer=lo.read(bsize);
> bpos=0;
> }
>
> // Handle EOF
> ! if(bpos >= buffer.length) {
> return -1;
> + }
>
> ! int ret = (buffer[bpos] & 0x7F);
> ! if ((buffer[bpos] &0x80) == 0x80) {
> ! ret |= 0x80;
> ! }
> !
> ! bpos++;
> !
> ! return ret;
> } catch(SQLException se) {
> throw new IOException(se.toString());
> }
> ***************
> *** 153,156 ****
> return true;
> }
>
> ! }
> --- 161,164 ----
> return true;
> }
>
> ! }
>
>
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Philip Crotwell | 2001-03-20 03:38:06 | finalize in LargeObject |
Previous Message | Bruce Momjian | 2001-03-19 23:54:05 | Re: [JDBC] Re: PostgreSQL and PHP persistent connections |
From | Date | Subject | |
---|---|---|---|
Next Message | Juhan-Peep Ernits | 2001-03-20 08:36:25 | Re: org.postgresql.Driver.java compile problem |
Previous Message | Bruce Momjian | 2001-03-19 21:56:54 | Email address |