Revision 9465
Added by Jing Tao almost 9 years ago
src/edu/ucsb/nceas/metacat/IdentifierManager.java | ||
---|---|---|
928 | 928 |
|
929 | 929 |
DBConnection dbConn = null; |
930 | 930 |
int serialNumber = -1; |
931 |
PreparedStatement stmt = null; |
|
931 | 932 |
try { |
932 | 933 |
// Get a database connection from the pool |
933 | 934 |
dbConn = DBConnectionPool.getDBConnection("IdentifierManager.getGUID"); |
934 | 935 |
serialNumber = dbConn.getCheckOutSerialNumber(); |
935 | 936 |
|
936 | 937 |
// Execute the insert statement |
937 |
PreparedStatement stmt = dbConn.prepareStatement(query);
|
|
938 |
stmt = dbConn.prepareStatement(query); |
|
938 | 939 |
stmt.setString(1, docid); |
939 | 940 |
stmt.setInt(2, rev); |
940 | 941 |
ResultSet rs = stmt.executeQuery(); |
... | ... | |
946 | 947 |
{ |
947 | 948 |
throw new McdbDocNotFoundException("No guid registered for docid " + docid + "." + rev); |
948 | 949 |
} |
949 |
|
|
950 |
if(rs != null) { |
|
951 |
rs.close(); |
|
952 |
} |
|
950 | 953 |
} catch (SQLException e) { |
951 | 954 |
logMetacat.error("Error while looking up the guid: " |
952 | 955 |
+ e.getMessage()); |
953 | 956 |
} finally { |
954 |
// Return database connection to the pool |
|
955 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
957 |
try { |
|
958 |
if(stmt != null) { |
|
959 |
stmt.close(); |
|
960 |
} |
|
961 |
} catch (Exception e) { |
|
962 |
logMetacat.warn("Couldn't close the prepared statement since "+e.getMessage()); |
|
963 |
} finally { |
|
964 |
// Return database connection to the pool |
|
965 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
966 |
} |
|
967 |
|
|
956 | 968 |
} |
957 | 969 |
|
958 | 970 |
return guid; |
... | ... | |
977 | 989 |
String sql = "select guid from systemMetadata where series_id = ? order by date_uploaded DESC"; |
978 | 990 |
DBConnection dbConn = null; |
979 | 991 |
int serialNumber = -1; |
992 |
PreparedStatement stmt = null; |
|
980 | 993 |
int endsCount = 0; |
981 | 994 |
boolean hasError = false; |
982 | 995 |
try { |
... | ... | |
984 | 997 |
dbConn = DBConnectionPool.getDBConnection("IdentifierManager.getHeadPID"); |
985 | 998 |
serialNumber = dbConn.getCheckOutSerialNumber(); |
986 | 999 |
// Execute the insert statement |
987 |
PreparedStatement stmt = dbConn.prepareStatement(sql);
|
|
1000 |
stmt = dbConn.prepareStatement(sql); |
|
988 | 1001 |
stmt.setString(1, sid.getValue()); |
989 | 1002 |
ResultSet rs = stmt.executeQuery(); |
990 | 1003 |
boolean hasNext = rs.next(); |
... | ... | |
1062 | 1075 |
//it is not a sid or at least we don't have anything to match it. |
1063 | 1076 |
//do nothing, so null will be returned |
1064 | 1077 |
} |
1078 |
if(rs != null) { |
|
1079 |
rs.close(); |
|
1080 |
} |
|
1065 | 1081 |
|
1066 | 1082 |
} catch (SQLException e) { |
1067 | 1083 |
logMetacat.error("Error while get the head pid for the sid "+sid.getValue()+" : " |
1068 | 1084 |
+ e.getMessage()); |
1069 | 1085 |
throw e; |
1070 | 1086 |
} finally { |
1071 |
// Return database connection to the pool |
|
1072 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1087 |
try { |
|
1088 |
if(stmt != null) { |
|
1089 |
stmt.close(); |
|
1090 |
} |
|
1091 |
} catch (Exception e) { |
|
1092 |
logMetacat.warn("Couldn't close the prepared statement since "+e.getMessage()); |
|
1093 |
} finally { |
|
1094 |
// Return database connection to the pool |
|
1095 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1096 |
} |
|
1073 | 1097 |
} |
1074 | 1098 |
} |
1075 | 1099 |
return pid; |
... | ... | |
1101 | 1125 |
String sql = "select guid from systemMetadata where series_id = ?"; |
1102 | 1126 |
DBConnection dbConn = null; |
1103 | 1127 |
int serialNumber = -1; |
1128 |
PreparedStatement stmt = null; |
|
1104 | 1129 |
try { |
1105 | 1130 |
// Get a database connection from the pool |
1106 | 1131 |
dbConn = DBConnectionPool.getDBConnection("IdentifierManager.serialIdExists"); |
1107 | 1132 |
serialNumber = dbConn.getCheckOutSerialNumber(); |
1108 | 1133 |
// Execute the insert statement |
1109 |
PreparedStatement stmt = dbConn.prepareStatement(sql);
|
|
1134 |
stmt = dbConn.prepareStatement(sql); |
|
1110 | 1135 |
stmt.setString(1, sid); |
1111 | 1136 |
ResultSet rs = stmt.executeQuery(); |
1112 | 1137 |
if (rs.next()) |
1113 | 1138 |
{ |
1114 | 1139 |
exists = true; |
1115 | 1140 |
} |
1116 |
|
|
1141 |
if(rs != null) { |
|
1142 |
rs.close(); |
|
1143 |
} |
|
1117 | 1144 |
} catch (SQLException e) { |
1118 | 1145 |
logMetacat.error("Error while checking if the sid "+sid+" exists on the series_id field of the system metadata table: " |
1119 | 1146 |
+ e.getMessage()); |
1120 | 1147 |
throw e; |
1121 | 1148 |
} finally { |
1122 |
// Return database connection to the pool |
|
1123 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1149 |
try { |
|
1150 |
if(stmt != null) { |
|
1151 |
stmt.close(); |
|
1152 |
} |
|
1153 |
} catch (Exception e) { |
|
1154 |
logMetacat.warn("Couldn't close the prepared statement since "+e.getMessage()); |
|
1155 |
} finally { |
|
1156 |
// Return database connection to the pool |
|
1157 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1158 |
} |
|
1124 | 1159 |
} |
1125 | 1160 |
} |
1126 | 1161 |
return exists; |
... | ... | |
1147 | 1182 |
String query = "select guid from systemmetadata where guid = ?"; |
1148 | 1183 |
DBConnection dbConn = null; |
1149 | 1184 |
int serialNumber = -1; |
1185 |
PreparedStatement stmt = null; |
|
1150 | 1186 |
if(guid != null && !guid.trim().equals("")) { |
1151 | 1187 |
try { |
1152 | 1188 |
// Get a database connection from the pool |
... | ... | |
1154 | 1190 |
serialNumber = dbConn.getCheckOutSerialNumber(); |
1155 | 1191 |
|
1156 | 1192 |
// Execute the insert statement |
1157 |
PreparedStatement stmt = dbConn.prepareStatement(query);
|
|
1193 |
stmt = dbConn.prepareStatement(query); |
|
1158 | 1194 |
stmt.setString(1, guid); |
1159 | 1195 |
ResultSet rs = stmt.executeQuery(); |
1160 | 1196 |
if (rs.next()) { |
1161 | 1197 |
exists = true; |
1162 | 1198 |
} |
1199 |
if(rs != null) { |
|
1200 |
rs.close(); |
|
1201 |
} |
|
1163 | 1202 |
|
1164 | 1203 |
} catch (SQLException e) { |
1165 | 1204 |
logMetacat.error("Error while looking up the system metadata: " |
1166 | 1205 |
+ e.getMessage()); |
1167 | 1206 |
throw e; |
1168 | 1207 |
} finally { |
1169 |
// Return database connection to the pool |
|
1170 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1208 |
try { |
|
1209 |
if(stmt != null) { |
|
1210 |
stmt.close(); |
|
1211 |
} |
|
1212 |
} catch (Exception e) { |
|
1213 |
logMetacat.warn("Couldn't close the prepared statement since "+e.getMessage()); |
|
1214 |
} finally { |
|
1215 |
// Return database connection to the pool |
|
1216 |
DBConnectionPool.returnDBConnection(dbConn, serialNumber); |
|
1217 |
} |
|
1171 | 1218 |
} |
1172 | 1219 |
} |
1173 | 1220 |
return exists; |
Also available in: Unified diff
Close the sql statements on the four methods - getGUID, getHeadPID, systemMetadataSIDExist and systemMetadataPIDExist.