X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FUiAdminUtils.java;fp=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FUiAdminUtils.java;h=5430b34d90710432e4000511119e7a88e977ed32;hb=63c252bcf4aa2cb508a45a839d032d64daecfa82;hp=05858cbd4e4b290a74a0afb5821137e4e734a2de;hpb=4fe1d843a422b0b616683c15b7b1cfb9c0538ee7;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java index 05858cbd4..5430b34d9 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java @@ -5,7 +5,10 @@ import java.security.Principal; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; +import javax.transaction.Status; +import javax.transaction.UserTransaction; +import org.argeo.ArgeoException; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; @@ -38,6 +41,16 @@ public class UiAdminUtils { return (firstName.trim() + " " + lastName.trim() + " ").trim(); } + public final static void beginTransactionIfNeeded( + UserTransaction userTransaction) { + try { + if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) + userTransaction.begin(); + } catch (Exception e) { + throw new ArgeoException("Unable to begin transaction", e); + } + } + /* * INTERNAL METHODS: Below methods are meant to stay here and are not part * of a potential generic backend to manage the useradmin