unico 2005/06/04 06:21:35
Modified: src/stores/org/apache/slide/store/impl/rdbms Tag:
SLIDE_2_1_RELEASE_BRANCH PostgresRDBMSAdapter.java
Log:
fix bug 34343 thanks to Martin Kal�n
Revision Changes Path
No revision
No revision
1.10.2.5 +21 -25
jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/PostgresRDBMSAdapter.java
Index: PostgresRDBMSAdapter.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/PostgresRDBMSAdapter.java,v
retrieving revision 1.10.2.4
retrieving revision 1.10.2.5
diff -u -r1.10.2.4 -r1.10.2.5
--- PostgresRDBMSAdapter.java 18 May 2005 17:36:08 -0000 1.10.2.4
+++ PostgresRDBMSAdapter.java 4 Jun 2005 13:21:35 -0000 1.10.2.5
@@ -234,33 +234,29 @@
}
}
- public void revokePermission(
- Connection connection,
- Uri uri,
- NodePermission permission)
- throws ServiceAccessException {
+ public void revokePermission(Connection connection, Uri uri,
NodePermission permission)
+ throws ServiceAccessException {
if (permission == null) return;
- PreparedStatement statement = null;
+ final StringBuffer sql = new StringBuffer("delete from PERMISSIONS
where (OBJECT_ID, SUBJECT_ID, ACTION_ID) IN" +
+ " (SELECT ou.URI_ID, su.URI_ID, au.URI_ID FROM URI ou, URI su, URI
au WHERE ou.URI_STRING = ? and su.URI_STRING = ? and au.URI_STRING = ?)");
+ PreparedStatement statement = null;
try {
- NodeRevisionNumber revisionNumber =
permission.getRevisionNumber();
- statement =
- connection.prepareStatement(
- "delete from PERMISSIONS where (OBJECT_ID,
SUBJECT_ID, ACTION_ID) IN" +
- " (SELECT ou.URI_ID, su.URI_ID, au.URI_ID FROM URI
ou, URI su, URI au " +
- " WHERE ou.URI_STRING = ? and su.URI_STRING = ? and
au.URI_STRING = ?)" +
- " and VERSION_NO = ?");
- statement.setString(1, uri.toString());
- statement.setString(2, permission.getSubjectUri());
- statement.setString(3, permission.getActionUri());
- if (revisionNumber == null) {
- statement.setNull(4, Types.VARCHAR);
+ final NodeRevisionNumber revisionNumber =
permission.getRevisionNumber();
+ // generate proper sql based on content of revision number
+ if (revisionNumber != null) {
+ sql.append(" and VERSION_NO = ?");
} else {
+ sql.append(" and VERSION_NO IS NULL");
+ }
+ statement.setString(1, uri.toString());
+ statement.setString(2, permission.getSubjectUri());
+ statement.setString(3, permission.getActionUri());
+ if (revisionNumber != null) {
statement.setString(4, revisionNumber.toString());
}
- statement.executeUpdate();
+ statement.executeUpdate();
} catch (SQLException e) {
- getLogger().log(e, LOG_CHANNEL, Logger.ERROR);
- throw new ServiceAccessException(service, e);
+ throw new ServiceAccessException(service, e);
} finally {
close(statement);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]