X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fproviders%2FUserTransactionProvider.java;h=cf1dd5daca4beb1469b5de6d24805e353bca4261;hb=d01cf8af884e44c3ddc6482a9dca4ac73bb8e93a;hp=877e5641fae1a34398da99f464eb6a3cedbb9c56;hpb=732542c8de267ed7d6cbb8c66b84cc90c8ad22d7;p=lgpl%2Fargeo-commons.git 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 877e5641f..cf1dd5dac 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 @@ -6,13 +6,19 @@ import java.util.Map; import javax.transaction.Status; import javax.transaction.UserTransaction; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; import org.argeo.security.ui.admin.SecurityAdminPlugin; +import org.eclipse.swt.SWTException; import org.eclipse.ui.AbstractSourceProvider; import org.eclipse.ui.ISources; -/** Notifies the UI on UserTransaction state change */ +/** Observe and notify UI on UserTransaction state changes */ public class UserTransactionProvider extends AbstractSourceProvider { + private final static Log log = LogFactory + .getLog(UserTransactionProvider.class); + public final static String TRANSACTION_STATE = SecurityAdminPlugin.PLUGIN_ID + ".userTransactionState"; public final static String STATUS_ACTIVE = "status.active"; @@ -51,10 +57,16 @@ public class UserTransactionProvider extends AbstractSourceProvider { } } - /** Publish the ability to notify a state change */ + /** Publishes the ability to notify a state change */ public void fireTransactionStateChange() { - fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE, - getInternalCurrentState()); + try { + fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE, + getInternalCurrentState()); + } catch (SWTException e) { + // FIXME + log.warn("Cannot fire transaction state change event: " + + e.getMessage()); + } } /* DEPENDENCY INJECTION */