Transkribus / TranskribusSwtGui

Note: the repo has been moved to https://gitlab.com/readcoop/Transkribus/TranskribusSwtGui
GNU General Public License v3.0
18 stars 4 forks source link

VersionsDiffBrowserDialog: Browser can't be initialized on Linux depending on version of webkit2gtk binding #275

Open kahlep opened 5 years ago

kahlep commented 5 years ago

On Fedora 29 with package webkit2gtk3-2.22.7-1.fc29.src.rpm the SWT Browser can not be initialized and an Exception is logged:

09:32:15.793 ERROR [main] eu.transkribus.swt_gui.mainwidget.TrpMainWidget - Unexpected error occured: No more handles because no underlying browser available.
   SWT on GTK 2.x detected. It is reccomended to use SWT on GTK 3.x and Webkit2 API.

org.eclipse.swt.SWTError: No more handles because no underlying browser available.
   SWT on GTK 2.x detected. It is reccomended to use SWT on GTK 3.x and Webkit2 API.

    at org.eclipse.swt.SWT.error(SWT.java:4621)
    at org.eclipse.swt.browser.Browser.<init>(Browser.java:128)
    at eu.transkribus.swt_gui.dialogs.VersionsDiffBrowserDialog.createDialogArea(VersionsDiffBrowserDialog.java:85)
    at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:767)
    at org.eclipse.jface.window.Window.create(Window.java:426)
    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1095)
    at org.eclipse.jface.window.Window.open(Window.java:783)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.openVersionsCompareDialog(TrpMainWidget.java:4978)
    at eu.transkribus.swt_gui.tools.ToolsWidgetListener.widgetSelected(ToolsWidgetListener.java:317)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5797)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5051)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4583)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget$16.run(TrpMainWidget.java:2890)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.show(TrpMainWidget.java:2843)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.show(TrpMainWidget.java:2824)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.main(TrpMainWidget.java:3198)

It works e.g. on Linux Mint 19.1 with package libwebkit2gtk-4.0-37

The Transkribus start script sets SWT_GTK3=0. Setting SWT_GTK3=1 on Fedora makes the Browser work, but still an error is logged.

SWT Webkit.java Error: Could not find webkit extension. BrowserFunction functionality will not be available. 
(swt version: 4919) SWT Glue code version: 54.0 info: +BrowserFunction/GDBus, +WebkitExtension Folder versioning, +WebKitExtension OSGI support, +setUrl(..postData..), -setCookie(), -getCookie +mouseDown/Focus
WebKit2Gtk version 2.22.7
Please report this issue *with steps to reproduce* via:
 https://bugs.eclipse.org/bugs/enter_bug.cgi?alias=&assigned_to=platform-swt-inbox%40eclipse.org&attach_text=&blocked=&bug_file_loc=http%3A%2F%2F&bug_severity=normal&bug_status=NEW&comment=&component=SWT&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-1=X&flag_type-11=X&flag_type-12=X&flag_type-13=X&flag_type-14=X&flag_type-15=X&flag_type-16=X&flag_type-2=X&flag_type-4=X&flag_type-6=X&flag_type-7=X&flag_type-8=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Linux&product=Platform&qa_contact=&rep_platform=PC&requestee_type-1=&requestee_type-2=&short_desc=webkit2_BrowserProblem
For bug report, please atatch this stack trace:
java.lang.Throwable: 
    at org.eclipse.swt.browser.WebKit.getStackTrace(WebKit.java:491)
    at org.eclipse.swt.browser.WebKit.getInternalErrorMsg(WebKit.java:484)
    at org.eclipse.swt.browser.WebKit.access$200(WebKit.java:126)
    at org.eclipse.swt.browser.WebKit$Webkit2Extension.initializeWebExtensions_callback(WebKit.java:596)
    at org.eclipse.swt.internal.webkit.WebKitGTK._webkit_web_view_new(Native Method)
    at org.eclipse.swt.internal.webkit.WebKitGTK.webkit_web_view_new(WebKitGTK.java:1928)
    at org.eclipse.swt.browser.WebKit.create(WebKit.java:1144)
    at org.eclipse.swt.browser.Browser.<init>(Browser.java:102)
    at eu.transkribus.swt_gui.dialogs.VersionsDiffBrowserDialog.createDialogArea(VersionsDiffBrowserDialog.java:85)
    at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:767)
    at org.eclipse.jface.window.Window.create(Window.java:426)
    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1095)
    at org.eclipse.jface.window.Window.open(Window.java:783)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.openVersionsCompareDialog(TrpMainWidget.java:4978)
    at eu.transkribus.swt_gui.tools.ToolsWidgetListener.widgetSelected(ToolsWidgetListener.java:317)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5797)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5051)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4583)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget$16.run(TrpMainWidget.java:2890)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.show(TrpMainWidget.java:2843)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.show(TrpMainWidget.java:2824)
    at eu.transkribus.swt_gui.mainwidget.TrpMainWidget.main(TrpMainWidget.java:3198)