From: Bruno Sinou Date: Fri, 9 Sep 2016 16:34:21 +0000 (+0000) Subject: Work on invalid thread access error while modifying the user referential X-Git-Tag: argeo-commons-2.1.45~11 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=de7b5af85c24b20ec977e44d6d6658026f65ab86;p=lgpl%2Fargeo-commons.git Work on invalid thread access error while modifying the user referential git-svn-id: https://svn.argeo.org/commons/trunk@9109 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- 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 c2925792c..27b530f07 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 @@ -25,7 +25,6 @@ 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 */ @@ -67,15 +66,16 @@ 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 (CmsException e) { throw e; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java index 9bd2d2de1..39a80a2e7 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java @@ -475,7 +475,16 @@ public class UserMainPage extends FormPage implements ArgeoNames { // TODO this check should be done before. if (role.getType() == Role.GROUP) { // TODO check if the user is already member of this group - myUserAdminWrapper.beginTransactionIfNeeded(); + + // Remove invalid thread access errors when managing users. + // myUserAdminWrapper.beginTransactionIfNeeded(); + event.display.asyncExec(new Runnable() { + @Override + public void run() { + myUserAdminWrapper.beginTransactionIfNeeded(); + } + }); + Group group = (Group) role; group.addMember(myUser); myUserAdminWrapper.notifyListeners(new UserAdminEvent(null, diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java index c5b9026c7..8c8fe7234 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java @@ -10,7 +10,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.cms.CmsException; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.eclipse.swt.SWTException; import org.eclipse.ui.AbstractSourceProvider; import org.eclipse.ui.ISources; @@ -62,10 +61,9 @@ public class UserTransactionProvider extends AbstractSourceProvider { try { fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE, getInternalCurrentState()); - } catch (SWTException e) { - // FIXME - log.warn("Cannot fire transaction state change event: " - + e.getMessage()); + } catch (Exception e) { + log.warn("Cannot fire transaction state change event. Caught exception: " + + e.getClass().getCanonicalName() + " - " + e.getMessage()); } }