X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fcommands%2FUserTransactionHandler.java;h=236584ca3fcf16bb0a68403f8d65c764b01bdb64;hb=c13da2a3a91edd21b54db7563727d009def37d3e;hp=1e881694dc460efcdfbc5690f0425b0ebc83221f;hpb=345556c177506e54c41f72eb1559fcc5338809e5;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/UserTransactionHandler.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/UserTransactionHandler.java index 1e881694d..236584ca3 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/UserTransactionHandler.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/UserTransactionHandler.java @@ -18,14 +18,13 @@ package org.argeo.security.ui.admin.internal.commands; import javax.transaction.Status; import javax.transaction.UserTransaction; -import org.argeo.ArgeoException; +import org.argeo.cms.CmsException; import org.argeo.security.ui.admin.SecurityAdminPlugin; import org.argeo.security.ui.admin.internal.UiAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; -import org.eclipse.ui.handlers.HandlerUtil; import org.osgi.service.useradmin.UserAdminEvent; /** Manage the transaction that is bound to the current perspective */ @@ -49,17 +48,17 @@ public class UserTransactionHandler extends AbstractHandler { try { if (TRANSACTION_BEGIN.equals(commandId)) { if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION) - throw new ArgeoException("A transaction already exists"); + throw new CmsException("A transaction already exists"); else userTransaction.begin(); } else if (TRANSACTION_COMMIT.equals(commandId)) { if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) - throw new ArgeoException("No transaction."); + throw new CmsException("No transaction."); else userTransaction.commit(); } else if (TRANSACTION_ROLLBACK.equals(commandId)) { if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) - throw new ArgeoException("No transaction to rollback."); + throw new CmsException("No transaction to rollback."); else { userTransaction.rollback(); userAdminWrapper.notifyListeners(new UserAdminEvent(null, @@ -67,20 +66,21 @@ public class UserTransactionHandler extends AbstractHandler { } } + UiAdminUtils.notifyTransactionStateChange(userTransaction); // Try to remove invalid thread access errors when managing users. - HandlerUtil.getActivePart(event).getSite().getShell().getDisplay() - .asyncExec(new Runnable() { - @Override - public void run() { - UiAdminUtils - .notifyTransactionStateChange(userTransaction); - } - }); + // HandlerUtil.getActivePart(event).getSite().getShell().getDisplay() + // .asyncExec(new Runnable() { + // @Override + // public void run() { + // UiAdminUtils + // .notifyTransactionStateChange(userTransaction); + // } + // }); - } catch (ArgeoException e) { + } catch (CmsException e) { throw e; } catch (Exception e) { - throw new ArgeoException("Unable to call " + commandId + " on " + throw new CmsException("Unable to call " + commandId + " on " + userTransaction, e); } return null;