Обсуждение: Postgres JDBC driver (80b1.308) bug
The postgresql 8 version 308 JDBC driver is broken (jar file: pg80b1.308.jdbc3.jar) I am running this driver against postgres 7.4. The System.out.println gives a stack overflow error because the Statement toString() is broken !! The following code illustrates the problem. I'm amazed that Statement.toString() would cause this kind of problem -- aren't the driver writers testing toString() methods of various implementation classes ? Best regards, --j ------------- code --------------------------------------- import java.sql.*; import java.io.*; public class foo { public static void main (String args[]) throws Exception { Connection con = getConnection(); String where_stmt = "SELECT a, b, c from alltypes WHERE id = 39"; Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); System.out.println(stmt); //<-------- ERROR HERE } static Connection getConnection() throws Exception { //return a connection here, implement for your system } } --------------------------- end ---------------------- __________________________________ Do you Yahoo!? Yahoo! Mail - now with 250MB free storage. Learn more. http://info.mail.yahoo.com/mail_250
On Tue, 11 Jan 2005, j.random.programmer wrote: > The postgresql 8 version 308 JDBC driver is broken > (jar file: pg80b1.308.jdbc3.jar) > > The System.out.println gives a stack overflow error because the > Statement toString() is broken !! > > The following code illustrates the problem. I'm amazed that > Statement.toString() would cause this kind of problem -- aren't the > driver writers testing toString() methods of various implementation > classes ? Apparently not. It's certainly broken, but what would you expect it to do? PreparedStatement has a real query that it prints, but Statement has no such information. Would you like it return null? ""? Something else? Kris Jurka
On Tue, 11 Jan 2005, j.random.programmer wrote: > > Apparently not. It's certainly broken, but what would you expect it > > to do? PreparedStatement has a real query that it prints, but > > Statement has no such information. Would you like it return null? ""? > > Something else? > > In earlier versions of the driver, it did something > like this: > > org.postgresql.jdbc3.Jdbc3Statement@c5fde0 > Seems reasonable. I've restored this behavior. Kris Jurka
Kris Jurka <books 'at' ejurka.com> writes: > Apparently not. It's certainly broken, but what would you expect it to > do? PreparedStatement has a real query that it prints, but Statement has > no such information. Would you like it return null? ""? Something else? I'd guess we could expect it to return "attribute" information, e.g. type of scroll etc. -- Guillaume Cottenceau