Is closing a ResulSet, Statement or connection act as a rollback when a transaction is not commited? Not clear in JavaDoc.

From: David Gagnon <dgagnon(at)siunik(dot)com>
To:
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Is closing a ResulSet, Statement or connection act as a rollback when a transaction is not commited? Not clear in JavaDoc.
Date: 2005-04-20 18:02:19
Message-ID: 4266992B.2080901@siunik.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi all,

I use the following code when accessing Postgreql. I suspect it may
have a weakness if an exception (Not SQLException) is thrown in the
try/catch block. I got a NullPointerException today so with the
following code there is no rollback on the trasaction but the
ResultSet/Connection/Statement will be closed (in finally block). Is
that oki? I will probably change the catch (SQLException e) for a catch
(Exception e). I just wanted to be sure since it's not clear in the
javadoc that closing a uncomitted resultSet is the samething as issuing
a rollback prior to closing the ResultSet.

Thanks for your help!! It's really appreciated
/David

try {
dbCon = ConnectionFactory.getConnection();
dbCon.startTransaction();

...
Throws NullPointerException...

...
dbCon.commitTransaction();
} catch (SQLException e) {

log.error("Problem with the db : " + e.getMessage(), e);
try {
dbCon.rollbackTransaction();
} catch (SQLException e1) {
log.error("Unable to rollback : " + e1.getMessage(), e);
}
ExceptionAdaptor.instance().getMappedException(e, "Unable to
add : " + e.getMessage(), true, ExceptionAdaptor.ACTION_INSERT);
} finally {
if (dbCon != null)
dbCon.closeAll();
}

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Mike Heath 2005-04-20 22:53:10 JDBC locking on processResults
Previous Message David Gagnon 2005-04-20 15:59:46 Re: implementing asynchronous notifications