db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tomohito Nakayama (JIRA)" <derby-...@db.apache.org>
Subject [jira] Reopened: (DERBY-721) State of InputStream retrieved from resultset is not clean , if there exists previous InputStream .
Date Tue, 29 Nov 2005 14:31:30 GMT
     [ http://issues.apache.org/jira/browse/DERBY-721?page=all ]
     
Tomohito Nakayama reopened DERBY-721:
-------------------------------------


Dan wrote: 

The error handling is incorrect here, and I think in at least one other
place in the patch.

1) Derby should not be printing stack traces to System.err, it should
just throw an exception. It's up to the calling application to print the
stack trace, if it wants.

2) There are utility methods, e.g. noStateChangeLOB, to create new
SQLExceptions, creating an exception like this will not include a
SQLState and will not link the original IOException to the SQLException.

Thanks,
Dan.

> 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
>     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 ....
> 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


Mime
View raw message