From: | aoki(at)acm(dot)org (Paul M(dot) Aoki) |
---|---|
To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)postgresql(dot)org, PostgreSQL jdbc list <pgsql-jdbc(at)postgresql(dot)org>, aoki(at)acm(dot)org |
Subject: | Re: no way in LargeObject API to detect short read? |
Date: | 2001-01-24 21:42:43 |
Message-ID: | 200101242142.f0OLgi725670@faerie.CS.Berkeley.EDU |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-jdbc |
Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Anyone able to fix this?
here's a hack we've been using in-house (written by Jun Gabayan,
<jgabayan(at)pahv(dot)xerox(dot)com>).
you may not like the style but it's a stab at a solution.
--
Paul M. Aoki / Xerox Palo Alto Research Center / 3333 Coyote Hill Road
aoki(at)acm(dot)org / Computer Science Laboratory / Palo Alto, CA 94304-1314
Index: LargeObject.java
===================================================================
RCS file: /project/placeless/cvsroot/placeless2/src/org/postgresql/largeobject/LargeObject.java,v
retrieving revision 1.1
retrieving revision 1.3
diff -r1.1 -r1.3
64c64,67
<
---
>
> private int pos = 0; //current position
> private int size = 0;
>
85a89,90
> pos = tell();
> size = size();
102a108
> if(fd == 0) return;
105a112
> fd = 0;
118a126,132
> // calculate available data to read to avoid reading pass the end
> // to avoid an exception
> pos = tell();
> int avail = size - pos;
> if(avail == 0) return null;
> if(avail < len) len = avail;
> try {
123c137,141
<
---
> }catch(SQLException se) {
> System.out.println("***LargeObject.read: Caught SQLException: " + se.getMessage());
> return null;
> }
>
157c175
< public void read(byte buf[],int off,int len) throws SQLException
---
> public int read(byte buf[],int off,int len) throws SQLException
159c177,180
< System.arraycopy(read(len),0,buf,off,len);
---
> byte mybuf[] = read(len);
> int sz = (mybuf != null) ? mybuf.length : -1; //must return -1 for end of data
> if(sz > 0) System.arraycopy(mybuf,0,buf,off,sz);
> return sz;
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-01-25 00:04:03 | Re: no way in LargeObject API to detect short read? |
Previous Message | Gonzalo Arana | 2001-01-24 20:50:24 | round - timestamp bug |
From | Date | Subject | |
---|---|---|---|
Next Message | Joseph Shraibman | 2001-01-24 21:56:54 | Re: [PATCHES] Re: Patch for JDBC timestamp problems |
Previous Message | Barry Lind | 2001-01-24 20:12:36 | Re: [GENERAL] jdbc driver, error trapping. |