Author: ozeigermann Date: Tue Apr 10 09:54:06 2007 New Revision: 527196 URL: http://svn.apache.org/viewvc?view=rev&rev=527196 Log: Added code for permissions to work outside of transactions
Modified: jakarta/slide/trunk/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java Modified: jakarta/slide/trunk/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java URL: http://svn.apache.org/viewvc/jakarta/slide/trunk/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java?view=diff&rev=527196&r1=527195&r2=527196 ============================================================================== --- jakarta/slide/trunk/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java (original) +++ jakarta/slide/trunk/wck/src/org/apache/slide/simple/store/WebdavStoreAdapter.java Tue Apr 10 09:54:06 2007 @@ -366,22 +366,75 @@ public Enumeration enumeratePermissions(Uri uri) throws ServiceAccessException { log("enumeratePermissions(" + uri + ")"); - return ((TransactionId) getCurrentlyActiveTransactionalResource()).enumeratePermissions(uri); + TransactionId id = ((TransactionId) getCurrentlyActiveTransactionalResource()); + if (id == null) { + id = createTransactionResource(uri); + try { + return id.enumeratePermissions(uri); + } finally { + try { + id.commit(); + } catch (XAException e) { + throw new ServiceAccessException(this, e); + } + } + } + + return id.enumeratePermissions(uri); } public void grantPermission(Uri uri, NodePermission permission) throws ServiceAccessException { log("grantPermission(" + uri + ")"); - ((TransactionId) getCurrentlyActiveTransactionalResource()).grantPermission(uri, permission); + TransactionId id = ((TransactionId) getCurrentlyActiveTransactionalResource()); + if (id == null) { + id = createTransactionResource(uri); + try { + id.grantPermission(uri, permission); + } finally { + try { + id.commit(); + } catch (XAException e) { + throw new ServiceAccessException(this, e); + } + } + } + id.grantPermission(uri, permission); } public void revokePermission(Uri uri, NodePermission permission) throws ServiceAccessException { log("revokePermission(" + uri + ")"); - ((TransactionId) getCurrentlyActiveTransactionalResource()).revokePermission(uri, permission); + TransactionId id = ((TransactionId) getCurrentlyActiveTransactionalResource()); + if (id == null) { + id = createTransactionResource(uri); + try { + id.revokePermission(uri, permission); + } finally { + try { + id.commit(); + } catch (XAException e) { + throw new ServiceAccessException(this, e); + } + } + } + id.revokePermission(uri, permission); } public void revokePermissions(Uri uri) throws ServiceAccessException { log("revokePermissions(" + uri + ")"); - ((TransactionId) getCurrentlyActiveTransactionalResource()).revokePermissions(uri); + TransactionId id = ((TransactionId) getCurrentlyActiveTransactionalResource()); + if (id == null) { + id = createTransactionResource(uri); + try { + id.revokePermissions(uri); + } finally { + try { + id.commit(); + } catch (XAException e) { + throw new ServiceAccessException(this, e); + } + } + } + id.revokePermissions(uri); } protected void log(String msg) { getLogger().log(msg, this.getClass().getName(), Logger.DEBUG); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]