cmlenz 2002/08/22 01:55:54
Modified: src/stores/org/apache/slide/store/impl/rdbms JDBCStore.java
Log:
More cleanup
Revision Changes Path
1.10 +254 -262
jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/JDBCStore.java
Index: JDBCStore.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/JDBCStore.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- JDBCStore.java 21 Aug 2002 09:51:27 -0000 1.9
+++ JDBCStore.java 22 Aug 2002 08:55:54 -0000 1.10
@@ -475,8 +475,8 @@
ObjectNode result = null;
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
long uriId = getUriId(uri.toString());
@@ -577,8 +577,8 @@
throws ServiceAccessException, ObjectNotFoundException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
long uriId = getUriId(uri.toString());
@@ -652,8 +652,8 @@
throws ServiceAccessException, ObjectAlreadyExistsException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
setUriId(uri.toString());
@@ -727,8 +727,8 @@
throws ServiceAccessException, ObjectNotFoundException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
long uriId = getUriId(object.getUri());
@@ -784,8 +784,8 @@
throws ServiceAccessException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
setUriId(permission.getObjectUri());
@@ -841,8 +841,8 @@
throws ServiceAccessException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
NodeRevisionNumber nrn = permission.getRevisionNumber();
@@ -883,8 +883,8 @@
throws ServiceAccessException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
sql.setLength(0);
@@ -920,8 +920,8 @@
Vector result = new Vector();
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
sql.setLength(0);
@@ -973,8 +973,8 @@
throws ServiceAccessException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
long lockId = getUriId(lock.getLockId());
@@ -1044,8 +1044,8 @@
throws ServiceAccessException, LockTokenNotFoundException {
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
long lockId = getUriId(lock.getLockId());
@@ -1100,8 +1100,8 @@
Vector result = new Vector();
Statement stmt = null;
- StringBuffer sql = new StringBuffer();
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
sql.setLength(0);
@@ -1156,90 +1156,85 @@
public NodeRevisionDescriptors retrieveRevisionDescriptors(Uri uri)
throws ServiceAccessException, RevisionDescriptorNotFoundException {
- NodeRevisionDescriptors revisionDescriptors = null;
+ NodeRevisionDescriptors result = null;
Statement stmt = null;
- Statement statement2 = null;
-
+ Statement stmt2 = null;
try {
+ StringBuffer sql = new StringBuffer();
ResultSet rs = null;
+ stmt = connection.createStatement();
+ stmt2 = connection.createStatement();
+
+ long uriId = getUriId(uri.toString());
- NodeRevisionNumber initialRevision = new NodeRevisionNumber();
- Hashtable workingRevisions = new Hashtable();
- Hashtable latestRevisionNumbers = new Hashtable();
- Hashtable branches = new Hashtable();
+ // find out whether the node is versioned
boolean isVersioned = false;
- long uriId = getUriId(uri.toString());
- stmt = connection.createStatement();
- statement2 = connection.createStatement();
- StringBuffer sql =
- new StringBuffer("select IS_VERSIONED from VERSION");
- sql.append(" where URI_ID= ");
- sql.append(uriId);
+ sql.setLength(0);
+ sql.append("SELECT IS_VERSIONED FROM VERSION ")
+ .append("WHERE URI_ID = ").append(uriId);
rs = stmt.executeQuery(sql.toString());
-
if (rs.next()) {
isVersioned = rs.getBoolean("IS_VERSIONED");
} else {
throw new RevisionDescriptorNotFoundException(uri.toString());
}
-
-
- sql = new StringBuffer("select VERSION_ID,REVISION_NO, ");
- sql.append("B.BRANCH_STRING from VERSION_HISTORY A , ");
- sql.append("BRANCH B where A.URI_ID= ");
- sql.append(uriId).append(" and A.BRANCH_ID = B.BRANCH_ID");
+
+ Hashtable branches = new Hashtable();
+ Hashtable latestRevisionNumbers = new Hashtable();
+ Hashtable workingRevisions = new Hashtable();
+ sql.setLength(0);
+ sql.append("SELECT A.VERSION_ID, A.REVISION_NO, B.BRANCH_STRING ")
+ .append("FROM VERSION_HISTORY A, BRANCH B ")
+ .append("WHERE A.URI_ID = ").append(uriId)
+ .append(" AND A.BRANCH_ID = B.BRANCH_ID");
rs = stmt.executeQuery(sql.toString());
-
- while(rs.next()) {
- String branchid = rs.getString("BRANCH_STRING");
-
- long versionid = rs.getLong("VERSION_ID");
- String currentRevisionNumber = rs.getString("REVISION_NO");
- latestRevisionNumbers
- .put(branchid,
- new NodeRevisionNumber(currentRevisionNumber));
-
-
+ while (rs.next()) {
+ String branch = rs.getString("BRANCH_STRING");
+ long versionId = rs.getLong("VERSION_ID");
+ NodeRevisionNumber nrn =
+ new NodeRevisionNumber(rs.getString("REVISION_NO"));
+
// We parse the revision list of the object
- sql = new StringBuffer("select PREDECESSOR_ID from ");
- sql.append("VERSION_PREDS where VERSION_ID = ");
- sql.append(versionid);
- ResultSet res2 = statement2.executeQuery(sql.toString());
- Vector childList = new Vector();
-
- while (res2.next()) {
- childList.addElement(new NodeRevisionNumber
- (getXNumber(res2.getLong("PREDECESSOR_ID"),
- uriId,
- branchid)));
- }
-
- branches.put(new NodeRevisionNumber(currentRevisionNumber),
- childList);
-
- res2.close();
- }
-
- revisionDescriptors = new NodeRevisionDescriptors
- (uri.toString(), initialRevision, workingRevisions,
- latestRevisionNumbers, branches, isVersioned);
-
+ sql.setLength(0);
+ sql.append("SELECT PREDECESSOR_ID FROM VERSION_PREDS ")
+ .append("WHERE VERSION_ID = ").append(versionId);
+ ResultSet rs2 = stmt2.executeQuery(sql.toString());
+ Vector predecessors = new Vector();
+ while (rs2.next()) {
+ predecessors.addElement(
+ new NodeRevisionNumber(
+ getXNumber(rs2.getLong("PREDECESSOR_ID"), uriId,
+ branch)));
+ }
+ branches.put(nrn, predecessors);
+ rs2.close();
+ }
+ result = new NodeRevisionDescriptors(uri.toString(),
+ new NodeRevisionNumber(),
+ workingRevisions,
+ latestRevisionNumbers,
+ branches, isVersioned);
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
- statement2.close();
+ if (stmt != null) {
+ stmt.close();
+ }
+ if (stmt2 != null) {
+ stmt2.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
}
}
- return revisionDescriptors;
+
+ return result;
}
-
-
+
+
/**
* Create a new revision information object.
*
@@ -1255,56 +1250,45 @@
// creating the new records in the database.
Statement stmt = null;
-
try {
+ StringBuffer sql = new StringBuffer();
ResultSet rs = null;
-
- // Creating record in revisions tables
-
- int isVersioned = 0;
- if (revisionDescriptors.isVersioned()) {
- isVersioned = 1;
- }
- long urid = getUriId(uri.toString());
stmt = connection.createStatement();
- StringBuffer sql =
- new StringBuffer("SELECT 1 FROM VERSION WHERE URI_ID =");
- sql.append(urid);
+ long uriId = getUriId(uri.toString());
+
+ // Creating record in revisions tables
+ sql.setLength(0);
+ sql.append("SELECT 1 FROM VERSION WHERE URI_ID = ").append(uriId);
rs = stmt.executeQuery(sql.toString());
if (!rs.next()) {
- sql = new StringBuffer("insert into VERSION ");
- sql.append("(URI_ID,IS_VERSIONED) values( ");
- sql.append(urid).append(", ").append(isVersioned)
- .append(")");
+ sql.setLength(0);
+ sql.append("INSERT INTO VERSION (URI_ID, IS_VERSIONED) ")
+ .append("VALUES (").append(uriId).append(", ")
+ .append(revisionDescriptors.isVersioned()).append(")");
stmt.execute(sql.toString());
}
- // For now, only the latest revision from the main branch is stored
- long brid = getBranchID( NodeRevisionDescriptors.
- MAIN_BRANCH.toString());
- sql = new StringBuffer
- ("SELECT 1 FROM VERSION_HISTORY WHERE URI_ID =");
- sql.append(urid).append(" and BRANCH_ID = ").append(brid);
- if (revisionDescriptors.getLatestRevision() == null) {
- sql.append(" and REVISION_NO = ").append("NULL");
- } else {
- sql.append(" and REVISION_NO = '").
- append(revisionDescriptors.getLatestRevision().toString())
- .append("'");
- }
+ // for now, only the latest revision from the main branch is stored
+ long branchId = getBranchID(NodeRevisionDescriptors.MAIN_BRANCH);
+ NodeRevisionNumber nrn =
+ revisionDescriptors.getLatestRevision();
+ sql.setLength(0);
+ sql.append("SELECT 1 FROM VERSION_HISTORY ")
+ .append("WHERE URI_ID = ").append(uriId)
+ .append(" AND BRANCH_ID = ").append(branchId)
+ .append(" AND REVISION_NO ")
+ .append((nrn != null) ? ("= '" + nrn + "'") : " IS NULL");
rs = stmt.executeQuery(sql.toString());
- if (!rs.next()) {
- if (revisionDescriptors.getLatestRevision() != null) {
- sql = new StringBuffer("insert into VERSION_HISTORY ");
- sql.append("(URI_ID,BRANCH_ID,REVISION_NO) values(");
- sql.append(urid).append(", ").append(brid);
- sql.append(", '").append(
- revisionDescriptors.getLatestRevision().toString())
- .append("')");
- stmt.execute(sql.toString());
- }
+ if (!rs.next() && (nrn != null)) {
+ sql.setLength(0);
+ sql.append("INSERT INTO VERSION_HISTORY ")
+ .append("(URI_ID, BRANCH_ID, REVISION_NO) ")
+ .append("VALUES (").append(uriId).append(", ")
+ .append(branchId).append(", '").append(nrn).append("')");
+ stmt.execute(sql.toString());
}
+
// Creating records in the branches table
// TODO Retained from the old Slide Schema
@@ -1313,7 +1297,9 @@
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
+ if (stmt != null) {
+ stmt.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
@@ -1338,7 +1324,6 @@
removeRevisionDescriptors(uri);
createRevisionDescriptors(uri, revisionDescriptors);
-
}
@@ -1352,29 +1337,36 @@
throws ServiceAccessException {
Statement stmt = null;
-
+ Statement stmt2 = null;
try {
- long uriId = getUriId(uri.toString());
+ StringBuffer sql = new StringBuffer();
ResultSet rs = null;
stmt = connection.createStatement();
- StringBuffer sql = new StringBuffer
- ("SELECT VERSION_ID FROM VERSION_HISTORY");
- sql.append(" where URI_ID = ");
- sql.append(uriId);
+
+ long uriId = getUriId(uri.toString());
+
+ sql.setLength(0);
+ sql.append("SELECT VERSION_ID FROM VERSION_HISTORY ")
+ .append("WHERE URI_ID = ").append(uriId);
rs = stmt.executeQuery(sql.toString());
- Statement substatement = connection.createStatement();
+ stmt2 = connection.createStatement();
if (rs.next()) {
- sql = new StringBuffer
- ("delete from VERSION_PREDS where VERSION_ID = ");
- sql.append(rs.getLong("VERSION_ID"));
- substatement.execute(sql.toString());
+ sql.setLength(0);
+ sql.append("DELETE FROM VERSION_PREDS WHERE VERSION_ID = ")
+ .append(rs.getLong("VERSION_ID"));
+ stmt2.execute(sql.toString());
}
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
+ if (stmt != null) {
+ stmt.close();
+ }
+ if (stmt2 != null) {
+ stmt2.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
@@ -1394,63 +1386,56 @@
* @param revisionNumber Node revision number
*/
public NodeRevisionDescriptor retrieveRevisionDescriptor
- (Uri uri, NodeRevisionNumber revisionNumber)
+ (Uri uri, NodeRevisionNumber nrn)
throws ServiceAccessException, RevisionDescriptorNotFoundException {
- NodeRevisionDescriptor revisionDescriptor = null;
- Statement stmt = null;
-
- if (revisionNumber == null) {
+ if (nrn == null) {
+ // TODO: should throw a NullPointerException
throw new RevisionDescriptorNotFoundException(uri.toString());
}
+ NodeRevisionDescriptor result = null;
+ Statement stmt = null;
try {
-
+ StringBuffer sql = new StringBuffer();
ResultSet rs = null;
+ stmt = connection.createStatement();
+
long uriId = getUriId(uri.toString());
+
+ // retrieve branch name and version ID
String branchName = null;
- Vector labels = new Vector();
- Hashtable properties = new Hashtable();
-
- // Retrieving branch name (and also check that revision
- // does indeed exist)
-
- stmt = connection.createStatement();
- StringBuffer sql = new StringBuffer("select A.VERSION_ID, ");
- sql.append("B.BRANCH_STRING from VERSION_HISTORY A, BRANCH B");
- sql.append(" where A.URI_ID = ");
- sql.append(uriId).append(" and A.REVISION_NO = '");
- sql.append(revisionNumber.toString());
- sql.append("' and B.BRANCH_ID = A.BRANCH_ID");
+ long versionId = 0;
+ sql.setLength(0);
+ sql.append("SELECT A.VERSION_ID, B.BRANCH_STRING ")
+ .append("FROM VERSION_HISTORY A, BRANCH B ")
+ .append("WHERE A.URI_ID = ").append(uriId)
+ .append(" AND A.REVISION_NO = '").append(nrn.toString());
+ sql.append("' AND B.BRANCH_ID = A.BRANCH_ID");
rs = stmt.executeQuery(sql.toString());
- long Version_ID = 0;
if (rs.next()) {
branchName = rs.getString("BRANCH_STRING");
- Version_ID = rs.getLong("VERSION_ID");
+ versionId = rs.getLong("VERSION_ID");
} else {
throw new RevisionDescriptorNotFoundException(uri.toString());
}
-
- // Retrieve labels
-
- sql = new StringBuffer
- ("select LABEL_ID from VERSION_LABELS where VERSION_ID = ");
- sql.append(Version_ID);
+ // retrieve labels
+ Vector labels = new Vector();
+ sql.setLength(0);
+ sql.append("SELECT LABEL_ID FROM VERSION_LABELS ")
+ .append("WHERE VERSION_ID = ").append(versionId);
rs = stmt.executeQuery(sql.toString());
-
while (rs.next()) {
labels.addElement(getLabelName(rs.getLong("LABEL_ID")));
}
-
// Retrieve properties
-
- sql = new StringBuffer
- ("select * from PROPERTIES where VERSION_ID = ");
- sql.append(Version_ID);
+ Hashtable properties = new Hashtable();
+ sql.setLength(0);
+ sql.append("SELECT * FROM PROPERTIES WHERE VERSION_ID = ")
+ .append(versionId);
rs = stmt.executeQuery(sql.toString());
-
while (rs.next()) {
String propertyName = rs.getString("PROPERTY_NAME");
String propertyNamespace = rs.getString("PROPERTY_NAMESPACE");
@@ -1463,23 +1448,24 @@
properties.put(propertyNamespace + propertyName, property);
}
- revisionDescriptor =
- new NodeRevisionDescriptor(revisionNumber, branchName,
- labels, properties);
-
+ result = new NodeRevisionDescriptor(nrn, branchName, labels,
+ properties);
+
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
+ if (stmt != null) {
+ stmt.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
}
}
- return revisionDescriptor;
+ return result;
}
@@ -1495,98 +1481,101 @@
throws ServiceAccessException {
Statement stmt = null;
-
+ PreparedStatement pstmt = null;
try {
+ StringBuffer sql = new StringBuffer();
ResultSet rs = null;
+ stmt = connection.createStatement();
long uriId = getUriId(uri.toString());
- long brid = getBranchID(revisionDescriptor.getBranchName());
- if (brid == 0 ) {
+ long branchId = getBranchID(revisionDescriptor.getBranchName());
+ if (branchId == 0) {
setBranchID(revisionDescriptor.getBranchName());
- brid = getBranchID(revisionDescriptor.getBranchName());
+ branchId = getBranchID(revisionDescriptor.getBranchName());
}
- stmt = connection.createStatement();
-
- StringBuffer sql = new StringBuffer
- ("SELECT 1 FROM VERSION WHERE URI_ID =");
- sql.append(uriId);
+
+ // TODO: this automatically creates the corresponding
+ // NodeRevisionDescriptors if they do not exist...
+ // is that intended?
+ sql.setLength(0);
+ sql.append("SELECT 1 FROM VERSION WHERE URI_ID = ")
+ .append(uriId);
rs = stmt.executeQuery(sql.toString());
if (!rs.next()) {
- sql = new StringBuffer
- ("insert into VERSION (URI_ID,IS_VERSIONED) values( ");
- sql.append(uriId).append(", ").append(0).append(")");
+ sql.setLength(0);
+ sql.append("INSERT INTO VERSION (URI_ID, IS_VERSIONED) ")
+ .append("VALUES (").append(uriId).append(", ").append(0)
+ .append(")");
stmt.execute(sql.toString());
}
-
- sql = new StringBuffer
- ("SELECT 1 FROM VERSION_HISTORY WHERE URI_ID =");
- sql.append(uriId).append(" and BRANCH_ID = ");
- sql.append(brid).append(" and REVISION_NO = '" );
- sql.append(revisionDescriptor.getRevisionNumber().toString());
- sql.append("'");
-
+
+ sql.setLength(0);
+ sql.append("SELECT 1 FROM VERSION_HISTORY WHERE URI_ID = ")
+ .append(uriId).append(" AND BRANCH_ID = ")
+ .append(branchId).append(" AND REVISION_NO = '" )
+ .append(revisionDescriptor.getRevisionNumber().toString())
+ .append("'");
rs = stmt.executeQuery(sql.toString());
-
if (!rs.next()) {
-
- sql = new StringBuffer
- ("insert into VERSION_HISTORY (URI_ID,BRANCH_ID,");
- sql.append("REVISION_NO) values(");
- sql.append(uriId).append(", ").append(brid);
- sql.append(", '").append
- (revisionDescriptor.getRevisionNumber().toString());
- sql.append("')");
+ sql.setLength(0);
+ sql.append("INSERT INTO VERSION_HISTORY (URI_ID, BRANCH_ID, ")
+ .append("REVISION_NO) VALUES (")
+ .append(uriId).append(", ").append(branchId).append(", '")
+ .append(revisionDescriptor.getRevisionNumber().toString())
+ .append("')");
stmt.execute(sql.toString());
}
- long Version_ID = getVersionID(uriId,
- revisionDescriptor.getBranchName(),
- revisionDescriptor.getRevisionNumber().toString());
-
- // Creating revision labels
+
+ long versionId =
+ getVersionID(uriId, revisionDescriptor.getBranchName(),
+ revisionDescriptor.getRevisionNumber().toString());
+
+ // create revision labels
Enumeration labels = revisionDescriptor.enumerateLabels();
while (labels.hasMoreElements()) {
- String sLabel =(String)labels.nextElement();
- long label= getLabelID(sLabel);
- if (label == 0) {
- setLabelID(sLabel);
- label= getLabelID(sLabel);
- }
- sql = new StringBuffer("insert into VERSION_LABELS ");
- sql.append("(VERSION_ID,LABEL_ID) values( ");
- sql.append(Version_ID).append(", ");
- sql.append(label).append(")");
+ String label =(String)labels.nextElement();
+ long labelId = getLabelID(label);
+ if (labelId == 0) {
+ setLabelID(label);
+ labelId = getLabelID(label);
+ }
+ sql.setLength(0);
+ sql.append("INSERT INTO VERSION_LABELS (VERSION_ID,LABEL_ID) ")
+ .append("VALUES (").append(versionId).append(", ")
+ .append(labelId).append(")");
stmt.execute(sql.toString());
}
- // Creating associated properties
+ // create associated properties
Enumeration properties = revisionDescriptor.enumerateProperties();
- PreparedStatement pstmt = connection.prepareStatement
- ("insert into PROPERTIES (VERSION_ID,PROPERTY_NAMESPACE,"
- +"PROPERTY_NAME,PROPERTY_VALUE,PROPERTY_TYPE,IS_PROTECTED)"
- +" values(?,?,?,?,?,? )");
+ sql.setLength(0);
+ sql.append("INSERT INTO PROPERTIES (VERSION_ID, ")
+ .append("PROPERTY_NAMESPACE, PROPERTY_NAME, PROPERTY_VALUE, ")
+ .append("PROPERTY_TYPE, IS_PROTECTED) ")
+ .append("VALUES (?, ?, ?, ?, ?, ?)");
+ pstmt = connection.prepareStatement(sql.toString());
while (properties.hasMoreElements()) {
- NodeProperty property =
- (NodeProperty) properties.nextElement();
- int protectedProperty = 0;
- if (property.isProtected()) {
- protectedProperty = 1;
- }
- pstmt.setLong(1,Version_ID);
- pstmt.setString(2,property.getNamespace());
- pstmt.setString(3,property.getName());
- pstmt.setString(4,property.getValue().toString());
- pstmt.setString(5,property.getType());
- pstmt.setInt(6,protectedProperty);
+ NodeProperty property = (NodeProperty)properties.nextElement();
+ pstmt.setLong(1, versionId);
+ pstmt.setString(2, property.getNamespace());
+ pstmt.setString(3, property.getName());
+ pstmt.setString(4, property.getValue().toString());
+ pstmt.setString(5, property.getType());
+ pstmt.setBoolean(6, property.isProtected());
pstmt.execute();
}
- pstmt.close();
-
+
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
+ if (stmt != null) {
+ stmt.close();
+ }
+ if (pstmt != null) {
+ pstmt.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
@@ -1608,6 +1597,7 @@
public void storeRevisionDescriptor
(Uri uri, NodeRevisionDescriptor revisionDescriptor)
throws ServiceAccessException, RevisionDescriptorNotFoundException {
+
myRevisionDescriptor = revisionDescriptor;
removeRevisionDescriptor(uri, revisionDescriptor.getRevisionNumber());
createRevisionDescriptor(uri, revisionDescriptor);
@@ -1621,36 +1611,37 @@
* @param revisionNumber Revision number
* @exception ServiceAccessException Service access error
*/
- public void removeRevisionDescriptor(Uri uri,
- NodeRevisionNumber revisionNumber)
- throws ServiceAccessException {
-
+ public void removeRevisionDescriptor(Uri uri, NodeRevisionNumber nrn)
+ throws ServiceAccessException {
+
Statement stmt = null;
-
try {
+ StringBuffer sql = new StringBuffer();
stmt = connection.createStatement();
+
long uriId = getUriId(uri.toString());
- String revisionNumberStr =
- (revisionNumber == null) ? "NULL" : revisionNumber.toString();
+
String branchStr = null;
- try {
+ if (myRevisionDescriptor != null) {
branchStr = myRevisionDescriptor.getBranchName();
- } catch (NullPointerException npex) {
+ } else {
branchStr = "main";
}
- long Version_ID =
- getVersionID(uriId,branchStr,revisionNumberStr);
- // Removing revision labels
- StringBuffer sql = new StringBuffer
- ("delete from VERSION_LABELS where VERSION_ID= ");
- sql.append(Version_ID);
+
+ long versionId =
+ getVersionID(uriId, branchStr,
+ (nrn != null) ? nrn.toString() : "NULL");
+
+ // remove revision labels
+ sql.setLength(0);
+ sql.append("DELETE FROM VERSION_LABELS WHERE VERSION_ID = ");
+ sql.append(versionId);
stmt.execute(sql.toString());
- // Removing associated properties
-
- sql = new StringBuffer
- ("delete from PROPERTIES where VERSION_ID= ");
- sql.append(Version_ID);
+ // remove associated properties
+ sql.setLength(0);
+ sql.append("DELETE FROM PROPERTIES WHERE VERSION_ID = ");
+ sql.append(versionId);
stmt.execute(sql.toString());
} catch (SQLException e) {
@@ -1658,13 +1649,14 @@
throw new ServiceAccessException(this, e);
} finally {
try {
- stmt.close();
+ if (stmt != null) {
+ stmt.close();
+ }
} catch (SQLException e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
throw new ServiceAccessException(this, e);
}
}
-
}
@@ -1689,13 +1681,13 @@
Statement selectStatement=null;
try {
- long versionid = getVersionID(getUriId(revisionUri),
+ long versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
selectStatement = connection.createStatement();
StringBuffer sql = new StringBuffer
("select CONTENT from VERSION_CONTENT where VERSION_ID = ");
- sql.append(versionid);
+ sql.append(versionId);
ResultSet rs = selectStatement.executeQuery(sql.toString());
if (!rs.next()) {
@@ -1769,14 +1761,14 @@
try {
- long versionid = getVersionID(getUriId(revisionUri),
+ long versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
selectStatement = connection.createStatement();
StringBuffer sql = new StringBuffer
("select 1 from VERSION_CONTENT where VERSION_ID = ");
- sql.append(versionid);
+ sql.append(versionId);
ResultSet rs = selectStatement.executeQuery(sql.toString());
if (rs.next()) {
rs.close();
@@ -1835,14 +1827,14 @@
try {
- long versionid = getVersionID(getUriId(revisionUri),
+ long versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
selectStatement = connection.createStatement();
StringBuffer sql = new StringBuffer
("select 1 from VERSION_CONTENT where VERSION_ID = ");
- sql.append(versionid);
+ sql.append(versionId);
ResultSet rs = selectStatement.executeQuery(sql.toString());
if (!rs.next()) {
@@ -1899,10 +1891,10 @@
revisionDescriptor.getRevisionNumber().toString();
try {
- long versionid = getVersionID(getUriId(revisionUri),
+ long versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
- removeContent(versionid);
+ removeContent(versionId);
} catch (Exception e) {
getLogger().log(e,LOG_CHANNEL,Logger.ERROR);
@@ -2269,20 +2261,20 @@
NodeRevisionContent revisionContent)
throws IOException, SQLException {
- long versionid = getVersionID(getUriId(revisionUri),
+ long versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
- if (versionid == 0 ) {
+ if (versionId == 0 ) {
setVersionID(getUriId(revisionUri),
getBranchID(revisionDescriptor.getBranchName()),
revisionNumber);
- versionid = getVersionID(getUriId(revisionUri),
+ versionId = getVersionID(getUriId(revisionUri),
revisionDescriptor.getBranchName(),
revisionNumber);
}
PreparedStatement insertStatement = connection.prepareStatement
("insert into VERSION_CONTENT values(?, ?)");
- insertStatement.setLong(1, versionid);
+ insertStatement.setLong(1, versionId);
InputStream is = revisionContent.streamContent();
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>