You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Tomohito Nakayama (JIRA)" <de...@db.apache.org> on 2005/11/21 12:26:44 UTC

[jira] Updated: (DERBY-721) State of InputStream retrieved from resultset is not clean , if there exists previous InputStream .

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

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

    Attachment: testLob.java
                testResult.txt

These are test program for reproduction of the phenomena  what I found , and result of the program .

> 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: naka@rufelza:~/derby/dev/trunk$ cat /proc/version 
> Linux version 2.6.12-1-386 (horms@tabatha.lab.ultramonkey.org) (gcc version 4.0.2 20050917 (prerelease) (Debian 4.0.1-8)) #1 Tue Sep 27 12:41:08 JST 2005
> naka@rufelza:~/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
>  Attachments: testLob.java, testResult.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 ....
> naka@rufelza:~/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