]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java
Reduce log amount when getting an invalid thread exception during user management
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / providers / UserTransactionProvider.java
index 877e5641fae1a34398da99f464eb6a3cedbb9c56..cf1dd5daca4beb1469b5de6d24805e353bca4261 100644 (file)
@@ -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 */