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();
}
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 |