JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.63k stars 2.59k forks source link

MySQL connection exception #5886

Closed einhander closed 4 years ago

einhander commented 4 years ago
JabRef version on

JabRef 5.0-beta.382--2020-01-28--0b53d4b Linux 5.4.0-3-amd64 amd64 Java 13.0.2

Steps to reproduce the behavior:

  1. Try to connect to MySQL server
  2. Press connect Version 4.3.X was OK
Log File ``` ERROR FallbackExceptionHandler Uncaught exception occurred in Thread[JavaFX Application Thread,5,main] java.util.ServiceConfigurationError: org.mariadb.jdbc.credential.CredentialPlugin: module org.jabref.merged.module does not declare `uses` at java.base/java.util.ServiceLoader.fail(Unknown Source) at java.base/java.util.ServiceLoader.checkCaller(Unknown Source) at java.base/java.util.ServiceLoader.(Unknown Source) at java.base/java.util.ServiceLoader.load(Unknown Source) at org.jabref.merged.module/org.mariadb.jdbc.credential.CredentialPluginLoader.(Unknown Source) at org.jabref.merged.module/org.mariadb.jdbc.UrlParser.defineUrlParserParameters(Unknown Source) at org.jabref.merged.module/org.mariadb.jdbc.UrlParser.parseInternal(Unknown Source) at org.jabref.merged.module/org.mariadb.jdbc.UrlParser.parse(Unknown Source) at org.jabref.merged.module/org.mariadb.jdbc.Driver.connect(Unknown Source) at java.sql/java.sql.DriverManager.getConnection(Unknown Source) at java.sql/java.sql.DriverManager.getConnection(Unknown Source) at org.jabref/org.jabref.logic.shared.DBMSConnection.(Unknown Source) at org.jabref/org.jabref.gui.shared.SharedDatabaseUIManager.openNewSharedDatabaseTab(Unknown Source) at org.jabref/org.jabref.gui.shared.SharedDatabaseLoginDialogViewModel.openSharedDatabase(Unknown Source) at org.jabref/org.jabref.gui.shared.SharedDatabaseLoginDialogViewModel.openDatabase(Unknown Source) at org.jabref/org.jabref.gui.shared.SharedDatabaseLoginDialogView.openDatabase(Unknown Source) at org.jabref/org.jabref.gui.shared.SharedDatabaseLoginDialogView.lambda$new$0(Unknown Source) at org.jabref/org.jabref.gui.util.ControlHelper.lambda$setAction$0(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler$NormalEventFilterRecord.handleCapturingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchCapturingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchCapturingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchCapturingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.event.Event.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.Node.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.control.Button.fire(Unknown Source) at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source) at org.jabref.merged.module/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.event.Event.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene$MouseHandler.process(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene.processMouseEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.View.handleMouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.View.notifyMouse(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method) at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.Application.enterNestedEventLoop(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.EventLoop.enter(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Unknown Source) at org.jabref.merged.module/javafx.stage.Stage.showAndWait(Unknown Source) at org.jabref.merged.module/javafx.scene.control.HeavyweightDialog.showAndWait(Unknown Source) at org.jabref.merged.module/javafx.scene.control.Dialog.showAndWait(Unknown Source) at org.jabref/org.jabref.gui.shared.ConnectToSharedDatabaseCommand.execute(Unknown Source) at org.jabref/org.jabref.gui.actions.JabRefAction.lambda$new$2(Unknown Source) at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Unknown Source) at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.event.Event.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.control.MenuItem.fire(Unknown Source) at org.jabref.merged.module/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(Unknown Source) at org.jabref.merged.module/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.event.Event.fireEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene$MouseHandler.process(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene.processMouseEvent(Unknown Source) at org.jabref.merged.module/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.View.handleMouseEvent(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.View.notifyMouse(Unknown Source) at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) ```
koppor commented 4 years ago

We recommend to use PostgreSQL, because it offers live update: In case another user changes something, you will have the changes instantly in your local JabRef UI. In case you are using MySQL, you have to manually pull the changes. - May I ask why you are using MySQL?

Regarding your issue: Think, it has to do with the new Java build system. With a small fix (https://github.com/JabRef/jabref/pull/5909), I could perfectly connect to my local MySQL instance running JabRef from source.

einhander commented 4 years ago

Thank you, I'll definitely try PostgreSQL. I have MySQL installed for other software, so I tried it with Jabref.

leyuwei commented 4 years ago

I've encountered the same problem. As I connected to a remote MySQL server, an EXCEPTION dialog just popped up. I also tried the latest development version, but it doesn't work anyway.

koppor commented 4 years ago

@leyuwei Any reason you stick to MySQL and do not use PostgreSQL? The support for PostgreSQL is much better.

tobiasdiez commented 4 years ago

Hopefully, this should be fixed in the latest development version. Could you please check the build from http://builds.jabref.org/master/. Thanks! Please remember to make a backup of your library before trying-out this version.

leyuwei commented 4 years ago

@koppor Thanks, the problem has been solved after I switched to PostgreSQL. But I still wonder why MySQL cannot work properly with JabRef. The primary server that I use has already deployed the MySQL for WordPress, so it'll be better if the remote database can be settled in the same place. @tobiasdiez , I'll try this out later, thx.

einhander commented 4 years ago

Hmm, I've installed JabRef 5.0-beta.466--2020-02-24--4eefcc6 Linux 5.4.0-3-amd64 amd64 Java 13.0.2 version and got the same error message. I think I should move to Postgre to get it work.

tobiasdiez commented 4 years ago

@einhander another try. This should be fixed now (at least this particular error message should be gone now). Could you please check the build from http://builds.jabref.org/master/. Thanks! Please remember to make a backup of your library before trying-out this version.

einhander commented 4 years ago

Thank you! Last master work Ok.