X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.e4%2Fsrc%2Forg%2Fargeo%2Fcms%2Fe4%2Fusers%2FUserBatchUpdateWizard.java;h=4073a209b25c3b7582820731c12da0b5064beae9;hb=5986e55820cba0821f0c16627c4ab144863c82ab;hp=6ce51b80384442500df310948e27671dccfe3fe7;hpb=088c1b517a543e935d8ab65c3b2fd2d0269b551d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.e4/src/org/argeo/cms/e4/users/UserBatchUpdateWizard.java b/org.argeo.cms.e4/src/org/argeo/cms/e4/users/UserBatchUpdateWizard.java index 6ce51b803..4073a209b 100644 --- a/org.argeo.cms.e4/src/org/argeo/cms/e4/users/UserBatchUpdateWizard.java +++ b/org.argeo.cms.e4/src/org/argeo/cms/e4/users/UserBatchUpdateWizard.java @@ -5,24 +5,22 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.transaction.SystemException; -import javax.transaction.UserTransaction; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.argeo.api.NodeConstants; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.auth.UserAdminUtils; import org.argeo.cms.e4.users.providers.CommonNameLP; import org.argeo.cms.e4.users.providers.DomainNameLP; import org.argeo.cms.e4.users.providers.MailLP; import org.argeo.cms.e4.users.providers.UserNameLP; -import org.argeo.cms.util.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.naming.LdapAttrs; import org.argeo.naming.LdapObjs; -import org.argeo.node.NodeConstants; +import org.argeo.osgi.transaction.WorkTransaction; import org.eclipse.jface.dialogs.IPageChangeProvider; import org.eclipse.jface.dialogs.IPageChangedListener; import org.eclipse.jface.dialogs.MessageDialog; @@ -90,15 +88,10 @@ public class UserBatchUpdateWizard extends Wizard { public boolean performFinish() { if (!canFinish()) return false; - UserTransaction ut = userAdminWrapper.getUserTransaction(); - try { - if (ut.getStatus() != javax.transaction.Status.STATUS_NO_TRANSACTION - && !MessageDialog.openConfirm(getShell(), "Existing Transaction", - "A user transaction is already existing, " + "are you sure you want to proceed ?")) - return false; - } catch (SystemException e) { - throw new CmsException("Cannot get user transaction state " + "before user batch update", e); - } + WorkTransaction ut = userAdminWrapper.getUserTransaction(); + if (!ut.isNoTransactionStatus() && !MessageDialog.openConfirm(getShell(), "Existing Transaction", + "A user transaction is already existing, " + "are you sure you want to proceed ?")) + return false; // We cannot use jobs, user modifications are still meant to be done in // the UIThread @@ -151,14 +144,9 @@ public class UserBatchUpdateWizard extends Wizard { } catch (Exception e) { throw new CmsException("Cannot perform batch update on users", e); } finally { - UserTransaction ut = userAdminWrapper.getUserTransaction(); - try { - if (ut.getStatus() != javax.transaction.Status.STATUS_NO_TRANSACTION) - ut.rollback(); - } catch (IllegalStateException | SecurityException | SystemException e) { - log.error("Unable to rollback session in 'finally', " + "the system might be in a dirty state"); - e.printStackTrace(); - } + WorkTransaction ut = userAdminWrapper.getUserTransaction(); + if (!ut.isNoTransactionStatus()) + ut.rollback(); } } } @@ -190,14 +178,9 @@ public class UserBatchUpdateWizard extends Wizard { } catch (Exception e) { throw new CmsException("Cannot perform batch update on users", e); } finally { - UserTransaction ut = userAdminWrapper.getUserTransaction(); - try { - if (ut.getStatus() != javax.transaction.Status.STATUS_NO_TRANSACTION) - ut.rollback(); - } catch (IllegalStateException | SecurityException | SystemException e) { - log.error("Unable to rollback session in finally block, the system might be in a dirty state"); - e.printStackTrace(); - } + WorkTransaction ut = userAdminWrapper.getUserTransaction(); + if (!ut.isNoTransactionStatus()) + ut.rollback(); } } } @@ -457,8 +440,7 @@ public class UserBatchUpdateWizard extends Wizard { } /** - * Displays a list of users with a check box to be able to choose some of - * them + * Displays a list of users with a check box to be able to choose some of them */ private class ChooseUsersWizardPage extends WizardPage implements IPageChangedListener { private static final long serialVersionUID = 7651807402211214274L;