[ http://issues.apache.org/jira/browse/DERBY-721?page=all ]

Tomohito Nakayama updated DERBY-721:
------------------------------------

    Attachment: DERBY-721_2.patch

Patch for the phenomena found in getCharacterStream

Description:
   Modified to reset the source InputStream instead of closing it , when 
org.apache.derby.impl.jdbc.UTF8Reader was closed.

Test:
   Executed derbyall and does not found new error other than found in 
http://www.multinet.no/~solberg/public/Apache/Derby/Limited/index.html already.


> State of InputStream retrieved from resultset is not clean , if there exists 
> previous InputStream .
> ---------------------------------------------------------------------------------------------------
>
>          Key: DERBY-721
>          URL: http://issues.apache.org/jira/browse/DERBY-721
>      Project: Derby
>         Type: Bug
>   Components: Unknown
>  Environment: [EMAIL PROTECTED]:~/derby/dev/trunk$ cat /proc/version 
> Linux version 2.6.12-1-386 ([EMAIL PROTECTED]) (gcc version 4.0.2 20050917 
> (prerelease) (Debian 4.0.1-8)) #1 Tue Sep 27 12:41:08 JST 2005
> [EMAIL PROTECTED]:~/derby/dev/trunk$ java -version
> java version "1.4.2_10"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_10-b03)
> Java HotSpot(TM) Client VM (build 1.4.2_10-b03, mixed mode)
>     Reporter: Tomohito Nakayama
>     Assignee: Tomohito Nakayama
>  Attachments: DERBY-721.patch, DERBY-721_2.patch, testLob.java, 
> testLob2.java, testResult.txt, testResult2.txt
>
> State of InputStream retrieved from ResultSet was not clean , if there exists 
> previous InputStream retrieved from ResultSet .
> Test code ...
>       PreparedStatement pst = conn.prepareStatement("insert into a(b) 
> values(?)");
>       byte[] data = new byte[1024 * 1024];
>       for(int i = 0;
>           i < 1024 * 1024;
>           i  ++){
>           data[i] = (byte)(i % 256);
>       }
>       pst.setBinaryStream(1,new ByteArrayInputStream(data),data.length);
>       pst.executeUpdate();
>       pst.close();
>       
>       
>       st = conn.createStatement();
>       ResultSet rs = st.executeQuery("select b from a");
>       rs.next();
>       
>       InputStream is = rs.getBinaryStream(1);
>       System.out.println("Here goes first stream");
>       System.out.println(is.read());
>       System.out.println(is.read());
>       System.out.println(is.read());
>       
>       is = rs.getBinaryStream(1);
>       System.out.println("Here goes 2nd stream");
>       System.out.println(is.read());
>       System.out.println(is.read());
>       System.out.println(is.read());
> Result ....
> [EMAIL PROTECTED]:~/derby/test/20051121$ java testLob
> Here goes first stream
> 0
> 1
> 2
> Here goes 2nd stream
> 7
> 8
> 9
> It is expected that result printed from first stream is as same as result 
> printed from 2nd.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to