Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Furnadjiev2018-01-17 15:36:23 +0000
committerMarkus Knauer2018-01-18 13:43:11 +0000
commitb30dc5257469ff39cf562ccc57afbd9ea607acae (patch)
tree55485f86969a77890e03d15d2079e336cd8ca48d
parentcbbe2f7862a0372b7b03fef6d0d44d7b8b9bf11a (diff)
downloadorg.eclipse.rap-streams/3.3-maintenance.tar.gz
org.eclipse.rap-streams/3.3-maintenance.tar.xz
org.eclipse.rap-streams/3.3-maintenance.zip
Copy the fix for JFace bug 488484 to RAPstreams/3.3-maintenance
Bug 488484 - [GTK3] "Ignored reentrant call while viewer is busy" warning and stacktrace In case SWT event is sent during doUpdateItem() we should run async update to avoid RuntimeException from ColumnViewer.checkBusy(). Change-Id: I08ea3bc8d610070b2572e7ab884391693db2875a
-rwxr-xr-xbundles/org.eclipse.rap.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/bundles/org.eclipse.rap.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java b/bundles/org.eclipse.rap.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
index 02e8a7bf0f..80914ce75b 100755
--- a/bundles/org.eclipse.rap.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
+++ b/bundles/org.eclipse.rap.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
@@ -82,8 +82,15 @@ public abstract class AbstractTableViewer extends ColumnViewer {
IContentProvider contentProvider = getContentProvider();
// If we are building lazily then request lookup now
if (contentProvider instanceof ILazyContentProvider) {
- ((ILazyContentProvider) contentProvider)
- .updateElement(index);
+ ILazyContentProvider lazyProvider = (ILazyContentProvider) contentProvider;
+ if (!isBusy()) {
+ lazyProvider.updateElement(index);
+ } else {
+ // In case event is sent during doUpdateItem() we
+ // should run async update to avoid RuntimeException
+ // from ColumnViewer.checkBusy(), see bug 488484
+ getControl().getDisplay().asyncExec(() -> lazyProvider.updateElement(index));
+ }
return;
}
}

Back to the top