commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "KNOX, Liam, FM" <Liam.K...@rbos.com>
Subject dbcp bug
Date Mon, 18 Aug 2003 14:15:56 GMT
Hi

I've been trying to use commons-dbcp within in our existing infrastructure
and have come across a problem.
The code below simply excutes a stored proc on Sybase which returns no
values. This causes a NullPointerException due the DelegatingResultSet.close
calling close on the null underlying ResultSet when the statement is closed.

Its quite interesting that commenting out the bold line actually stops the
exception occuring !!

Is this a bug ??

Cheers

Liam

// code

public class DataSourceTest {

    public static void main(String[] args) throws Exception {

        System.out.println("Loading underlying JDBC driver.");
        Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
        ObjectPool connectionPool = new GenericObjectPool(null,10);
        ConnectionFactory connectionFactory = new
DriverManagerConnectionFactory("jdbc:sybase:Tds:lon0658xus.fm.rbsgrp.net:205
0/finesse_test1","finessedbo","finessedbo");
        PoolableConnectionFactory poolableConnectionFactory = new
PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,t
rue);
        DataSource dataSource = new PoolingDataSource(connectionPool);

        System.out.println("Done.");

        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;

        try {
            System.out.println("Creating connection.");
            conn = dataSource.getConnection();
            System.out.println("Creating callable statement.");
            stmt = conn.prepareCall("TruncateDb");
            System.out.println("Executing callable statement.");
            stmt.execute();
            rs = stmt.getResultSet();

        } catch(SQLException e) {
            e.printStackTrace();
        } finally {

            try {
              System.out.println("Closing Statement.");
            stmt.close(); } catch(Exception e) { e.printStackTrace();}
            try {
              conn.commit();
              conn.close();
          } catch(Exception e) { e.printStackTrace();}
        }
    }

}
   

// output


Loading underlying JDBC driver.
Done.
Creating connection.
Creating callable statement.
Executing callable statement.
Closing Statement.
java.lang.NullPointerException
	at
org.apache.commons.dbcp.DelegatingResultSet.close(DelegatingResultSet.java:1
32)
	at
org.apache.commons.dbcp.DelegatingCallableStatement.close(DelegatingCallable
Statement.java:140)
	at dbcp.DataSourceTest.main(DataSourceTest.java:48)






***********************************************************************************
This e-mail is intended only for the addressee named above.
As this e-mail may contain confidential or privileged information,
if you are not the named addressee, you are not authorised to
retain, read, copy or disseminate this message or any part of it.
The Royal Bank of Scotland plc is registered in Scotland No 90312
Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB
             Regulated by the Financial Services Authority

            Visit our website at http://www.rbs.co.uk/CBFM/
***********************************************************************************


Mime
View raw message