Revision: 19690
http://sourceforge.net/p/gate/code/19690
Author: ian_roberts
Date: 2016-10-18 13:11:53 + (Tue, 18 Oct 2016)
Log Message:
---
Use invokeAndWait rather than invokeLater to add items to the document exporter
menu, to avoid deadlocks when the menu tries to update itself for a new
exporter on one thread at the same time as the plugin manager is registering a
different resource type.
Modified Paths:
--
gate/trunk/src/main/gate/gui/DocumentExportMenu.java
Modified: gate/trunk/src/main/gate/gui/DocumentExportMenu.java
===
--- gate/trunk/src/main/gate/gui/DocumentExportMenu.java2016-10-18
01:23:24 UTC (rev 19689)
+++ gate/trunk/src/main/gate/gui/DocumentExportMenu.java2016-10-18
13:11:53 UTC (rev 19690)
@@ -67,6 +67,8 @@
import javax.swing.SwingUtilities;
import javax.swing.table.TableCellEditor;
+import org.apache.log4j.Logger;
+
/**
* A menu which updates as plugins are (un)loaded to allow the export of
* documents and corpora to any of the supported output formats.
@@ -74,6 +76,8 @@
@SuppressWarnings("serial")
public class DocumentExportMenu extends XJMenu implements CreoleListener {
+ private static final Logger log = Logger.getLogger(DocumentExportMenu.class);
+
static DocumentExportDialog dialog = new DocumentExportDialog();
protected IdentityHashMap itemByResource =
@@ -455,14 +459,22 @@
final Resource res = e.getResource();
if(res instanceof DocumentExporter) {
- SwingUtilities.invokeLater(new Runnable() {
-
+ Runnable runnable = new Runnable() {
@Override
public void run() {
addExporter((DocumentExporter)res);
}
- });
+ };
+ if(SwingUtilities.isEventDispatchThread()) {
+runnable.run();
+ } else {
+try {
+ SwingUtilities.invokeAndWait(runnable);
+} catch(Exception ex) {
+ log.warn("Exception registering document exporter", ex);
+}
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
GATE-cvs mailing list
GATE-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gate-cvs