You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2011/02/21 10:22:31 UTC
svn commit: r1072900 -
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
Author: andrey
Date: Mon Feb 21 09:22:31 2011
New Revision: 1072900
URL: http://svn.apache.org/viewvc?rev=1072900&view=rev
Log:
correct exception handling in DerbyPkGenerator
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java?rev=1072900&r1=1072899&r2=1072900&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyPkGenerator.java Mon Feb 21 09:22:31 2011
@@ -58,43 +58,44 @@ public class DerbyPkGenerator extends Jd
}
Connection c = node.getDataSource().getConnection();
- PreparedStatement select = null;
-
try {
- select = c.prepareStatement(
+ PreparedStatement select = c.prepareStatement(
SELECT_QUERY,
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
-
- select.setString(1, entity.getName());
- ResultSet rs = select.executeQuery();
-
- if (!rs.next()) {
- throw new CayenneException("PK lookup failed for table: "
- + entity.getName());
+ try {
+ select.setString(1, entity.getName());
+ ResultSet rs = select.executeQuery();
+
+ try {
+ if (!rs.next()) {
+ throw new CayenneException("PK lookup failed for table: "
+ + entity.getName());
+ }
+
+ long nextId = rs.getLong(1);
+
+ rs.updateLong(1, nextId + pkCacheSize);
+ rs.updateRow();
+
+ if (rs.next()) {
+ throw new CayenneException("More than one PK record for table: "
+ + entity.getName());
+ }
+
+ c.commit();
+
+ return nextId;
+ }
+ finally {
+ rs.close();
+ }
}
-
- long nextId = rs.getLong(1);
-
- rs.updateLong(1, nextId + pkCacheSize);
- rs.updateRow();
-
- if (rs.next()) {
- throw new CayenneException("More than one PK record for table: "
- + entity.getName());
+ finally {
+ select.close();
}
-
- rs.close();
-
- select.close();
- c.commit();
-
- return nextId;
}
finally {
- if (select != null) {
- select.close();
- }
c.close();
}
}