#895440 jabref: [~Unable to connect to libreoffice

Package:
jabref
Source:
jabref
Submitter:
D Haley
Date:
2022-02-21 09:03:05 UTC
Severity:
normal
Tags:
#895440#5
Date:
2018-04-11 14:15:32 UTC
From:
To:
Dear Maintainer,

The Libreoffice "connect" feature does not appear to work in this version
of jabref by default.

The "manual connect" feature [1][2] fails as it is looking for several
.jar files:

unoil.jar
jurt.jar
juh.jar
ridl.jar

These files are located in some of these folders (but not all):
/usr/share/java/
/usr/lib/libreoffice/program/classes/
/usr/share/libreoffice/program/classes/

which are not in the default paths listed by the program.

Furthermore, as jabref insists on appending "program/classes/" to
any path that you specify, you can only access them by supplying
"/usr/lib/libreoffice/" as the path. Using /usr/share/java/ or
/usr/share/libreoffice/ does not work, as not all jars are in these
directories (for /usr/share/libreoffice/ OR under the apprpriate sub-path
(program/classes, as the case for /usr/share/java/).

Possible solutions:
1) The default path in the automatic or manual connect could pointed to /usr/lib/libreoffice/
2) Upstream could allow specifying multiple search paths
3) Upstream could hard-code in multiple search locations, such
as /usr/share/java/ and drop the hard-coded requirement for the
"program/classes/" subfolder, and search these optionally
4) Libreoffice could be more consistent in where .jar files are symlinked/installed. The "ure" package does not use /usr/lib/ for .jar installation.

Thanks!

[1] https://help.jabref.org/en/OpenOfficeIntegration
[2] https://www.onetransistor.eu/2015/04/libreoffice-bibliography-jabref.html

#895440#10
Date:
2018-04-23 13:11:14 UTC
From:
To:
Control: tag -1 + unreproducible

Thanks for your bug report, and sorry for the late reply.
I could not reproduce it on unstable, and it took me a bit of time to
find an opportunity to test it on stable.

And unfortunately I also can't reproduce it on stable. When I start
LO writer and then JabRef and then click on the automatic connect
button it succeeds, and I can then e.g. press "Cite" to insert a
citation of the current book.
Path to OO/LO executable: /usr/lib/libreoffice/program/soffice
Path to OO/LO library dir: /usr/lib/libreoffice/program/classes
[..]

The only thing I notice is that

you are using LO from backports; maybe the library problem you
mention only exists there but not in plain stable or in unstable?

In any case, if a LO jar is not in the right directory (or a symlink)
this would be more a problem in some LO component (or ure) than in
jabref.


Cheers,
gregor

#895440#17
Date:
2019-07-24 15:52:37 UTC
From:
To:

#895440#22
Date:
2019-07-24 16:00:28 UTC
From:
To:
Experiencing the same problem in Buster with a vanilla installation, but probably with a different cause.

Using jabref 3.8.2+ds-12, jabref is unable to connect to libreoffice automatically or manually.

I see this output from jabref when I attempt to connect:
java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
    at net.sf.jabref.gui.openoffice.OpenOfficePanel.addURL(OpenOfficePanel.java:484) ~[JabRef-3.8.2.jar:?]
    at net.sf.jabref.gui.openoffice.OpenOfficePanel.connect(OpenOfficePanel.java:419) ~[JabRef-3.8.2.jar:?]
    at net.sf.jabref.gui.openoffice.OpenOfficePanel.lambda$initPanel$0(OpenOfficePanel.java:141) ~[JabRef-3.8.2.jar:?]
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) ~[?:?]
    at java.awt.Component.processMouseEvent(Component.java:6632) ~[?:?]
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
    at java.awt.Component.processEvent(Component.java:6397) ~[?:?]
    at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
    at java.awt.Component.dispatchEventImpl(Component.java:5008) ~[?:?]
    at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
    at java.awt.Component.dispatchEvent(Component.java:4840) ~[?:?]
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) ~[?:?]
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) ~[?:?]
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) ~[?:?]
    at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
    at java.awt.Window.dispatchEventImpl(Window.java:2772) ~[?:?]
    at java.awt.Component.dispatchEvent(Component.java:4840) ~[?:?]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
    at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
    at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]

JabRef was able to connect to LibreOffice fine for me in Stretch.

Thanks,
Gary
p.s. I inadvertently sent the last email as HTML (sorry), so I am resending it as plain text.

#895440#27
Date:
2019-08-07 00:14:04 UTC
From:
To:
Control: tag -1 + confirmed

I can reproduce this issue (on unstable). If I try to connect
manually (with the default values for the LO executable and libs), I
get an error message saying:

"File not found: /usr/lib/libreoffice/program/classes/program/classes/unoil.jar"

If I try to connect manually again but change the lib path from
/usr/lib/libreoffice/programm/classes to /usr/lib/libreoffice/ I
don't get an error window from JabRef but it still fails with a java
backtrace like yours:

02:11:07.355 [AWT-EventQueue-0] ERROR net.sf.jabref.FallbackExceptionHandler - Uncaught exception Occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
	at net.sf.jabref.gui.openoffice.OpenOfficePanel.addURL(OpenOfficePanel.java:484) ~[JabRef-3.8.2.jar:?]
	at net.sf.jabref.gui.openoffice.OpenOfficePanel.connect(OpenOfficePanel.java:419) ~[JabRef-3.8.2.jar:?]
	at net.sf.jabref.gui.openoffice.OpenOfficePanel.lambda$initPanel$1(OpenOfficePanel.java:142) ~[JabRef-3.8.2.jar:?]
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) ~[?:?]
	at java.awt.Component.processMouseEvent(Component.java:6632) ~[?:?]
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
	at java.awt.Component.processEvent(Component.java:6397) ~[?:?]
	at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
	at java.awt.Component.dispatchEventImpl(Component.java:5008) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4840) ~[?:?]
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) ~[?:?]
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) ~[?:?]
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
	at java.awt.Window.dispatchEventImpl(Window.java:2772) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4840) ~[?:?]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]


So yeah. there is an issue; and this has worked the last time I tried
it … Maybe some change in OpenJDK? -- This needs further
investigation.


Cheers,
gregor

#895440#34
Date:
2019-08-10 15:54:51 UTC
From:
To:
Thank you both for reporting and confirming the issue.  I will take a
look this weekend.

Cheers,
tony

#895440#39
Date:
2019-08-12 04:11:49 UTC
From:
To:
This is definitely due to a change in how classloaders work in Java
after Java 8.  You can refer to this thread for more information:

https://community.oracle.com/thread/4011800

I spent a little time working on a patch for JabRef to use the

  Class.forName("foo", true, new URLClassLoader(URL[] bar));

pattern if the ClassLoader returned from the system isn't an instance of
URLClassLoader, which addresses the first stacktrace reported, but there
are (at least) two more that need to be addressed in the JabRef sources.

So for the time-being, I recommend installing openjdk-8-jre and starting
jabref like so:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 jabref

Running on Java 8, I was able to manually connect to LibreOffice using
the parameters:

  Path to OpenOffice/LibreOffice executable:  /usr/bin/libreoffice
  Path to OpenOffice/LibreOffice library dir:  /usr/lib/libreoffice

I might continue to work on a patch for this, but even the latest
upstream version 4.3.1 doesn't run on Java 11 yet, so I'm reluctant to
invest too much in a hack that needs to be reworked upstream.

Regards,
tony

#895440#44
Date:
2019-09-08 12:26:29 UTC
From:
To:
It looks like jabref still cannot connect to liberoffice. On ubuntu
18.04 with jabref 2.8.2 the bug persists. But, the workaround, using
openjdk-8 works.

https://bugs.launchpad.net/ubuntu/+source/jabref/+bug/1843171

flem

#895440#49
Date:
2022-02-12 08:47:41 UTC
From:
To:
Dear Maintainer,

First, thanks for your contributions to the Debian project!

I have problems to connect JabRef and LibreOffice in the jabref bullseye version.

I do manual connection and I get the error:

“File not found: /usr/lib/libreoffice/program/classes/program/classes/unoil.jar”

In fact, unoil.jar is in “/usr/lib/libreoffice/program/classes/”.

If I create the directory and I copy the jar file in the created directory, the problem is not solved.

Using version 8 of Java does not seem like an easy solution in Bullseye, since this version does not exist in Debian 11.

Kind regards and thanks for maintaining jabref

#895440#54
Date:
2022-02-13 17:39:19 UTC
From:
To:
Hello Pep,

Can you please provide the output from the program start to the time
when you attempt the connection and it fails?

DEBUG_WRAPPER=true /usr/bin/jabref

Thank you,
tony

#895440#59
Date:
2022-02-13 21:09:31 UTC
From:
To:
Hello, Tony:

Thanks so much for this quick response.

El dg. 13 de 02 de 2022 a les 09:39 -0800, en/na tony mancill va
escriure:

Here it is:

$ DEBUG_WRAPPER=true /usr/bin/jabref
[debug] /usr/bin/jabref: Picking up the JVM designated by the
alternatives system:
[debug] /usr/bin/jabref:   JAVA_HOME = '/usr/lib/jvm/java-11-openjdk-
amd64'
[debug] /usr/bin/jabref: Found JAVA_HOME = '/usr/lib/jvm/java-11-
openjdk-amd64'
[debug] /usr/bin/jabref: Found JAVA_CMD = '/usr/lib/jvm/java-11-
openjdk-amd64/bin/java'
[debug] /usr/bin/jabref: Environment variable CLASSPATH is ''
[debug] /usr/bin/jabref: Runnning /usr/lib/jvm/java-11-openjdk-
amd64/bin/java  -classpath
/usr/share/java/jabref.jar:/usr/share/java/bcprov.jar:/usr/share/java/a
ntlr3-runtime.jar:/usr/share/java/antlr4-
runtime.jar:/usr/share/java/com.android.json.jar:/usr/share/java/common
s-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-
lang3.jar:/usr/share/java/commons-
logging.jar:/usr/share/java/fontbox.jar:/usr/share/java/glazedlists.jar
:/usr/share/java/guava.jar:/usr/share/java/httpasyncclient.jar:/usr/sha
re/java/httpclient.jar:/usr/share/java/httpcore.jar:/usr/share/java/htt
pcore-nio.jar:/usr/share/java/httpmime.jar:/usr/share/java/java-string-
similarity.jar:/usr/share/java/jaxb-
runtime.jar:/usr/share/java/jempbox.jar:/usr/share/java/jgoodies-
common.jar:/usr/share/java/jgoodies-forms.jar:/usr/share/java/jgoodies-
looks.jar:/usr/share/java/jhlabs-
filters.jar:/usr/share/java/jsoup.jar:/usr/share/java/juh.jar:/usr/shar
e/java/jurt.jar:/usr/share/java/log4j-api.jar:/usr/share/java/log4j-
core.jar:/usr/share/java/log4j-
jcl.jar:/usr/share/java/microba.jar:/usr/share/java/mariadb-java-
client.jar:/usr/share/java/pdfbox.jar:/usr/share/java/postgresql.jar:/u
sr/share/java/ridl.jar:/usr/share/java/spin.jar:/usr/share/java/swingx.
jar:/usr/share/java/swing-layout.jar:/usr/share/java/unirest-
java.jar:/usr/share/java/unoil.jar --add-
opens=java.desktop/java.awt=ALL-UNNAMED net.sf.jabref.JabRefMain
21:58:31.744 [AWT-EventQueue-0] WARN  net.sf.jabref.JabRefGUI - There
seem to be problems with OpenJDK and the default GTK Look&Feel. Using
Metal L&F instead. Change to another L&F with caution.

I hope it's useful. Thank you very much.

Pep

#895440#64
Date:
2022-02-14 07:05:38 UTC
From:
To:
Hello, Tony:

I'm sorry. Now I put the full output.

El dg. 13 de 02 de 2022 a les 09:39 -0800, en/na tony mancill va
escriure:

$ DEBUG_WRAPPER=true /usr/bin/jabref
[debug] /usr/bin/jabref: Picking up the JVM designated by the
alternatives system:
[debug] /usr/bin/jabref:   JAVA_HOME = '/usr/lib/jvm/java-11-openjdk-
amd64'
[debug] /usr/bin/jabref: Found JAVA_HOME = '/usr/lib/jvm/java-11-
openjdk-amd64'
[debug] /usr/bin/jabref: Found JAVA_CMD = '/usr/lib/jvm/java-11-
openjdk-amd64/bin/java'
[debug] /usr/bin/jabref: Environment variable CLASSPATH is ''
[debug] /usr/bin/jabref: Runnning /usr/lib/jvm/java-11-openjdk-
amd64/bin/java  -classpath
/usr/share/java/jabref.jar:/usr/share/java/bcprov.jar:/usr/share/java/a
ntlr3-runtime.jar:/usr/share/java/antlr4-
runtime.jar:/usr/share/java/com.android.json.jar:/usr/share/java/common
s-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-
lang3.jar:/usr/share/java/commons-
logging.jar:/usr/share/java/fontbox.jar:/usr/share/java/glazedlists.jar
:/usr/share/java/guava.jar:/usr/share/java/httpasyncclient.jar:/usr/sha
re/java/httpclient.jar:/usr/share/java/httpcore.jar:/usr/share/java/htt
pcore-nio.jar:/usr/share/java/httpmime.jar:/usr/share/java/java-string-
similarity.jar:/usr/share/java/jaxb-
runtime.jar:/usr/share/java/jempbox.jar:/usr/share/java/jgoodies-
common.jar:/usr/share/java/jgoodies-forms.jar:/usr/share/java/jgoodies-
looks.jar:/usr/share/java/jhlabs-
filters.jar:/usr/share/java/jsoup.jar:/usr/share/java/juh.jar:/usr/shar
e/java/jurt.jar:/usr/share/java/log4j-api.jar:/usr/share/java/log4j-
core.jar:/usr/share/java/log4j-
jcl.jar:/usr/share/java/microba.jar:/usr/share/java/mariadb-java-
client.jar:/usr/share/java/pdfbox.jar:/usr/share/java/postgresql.jar:/u
sr/share/java/ridl.jar:/usr/share/java/spin.jar:/usr/share/java/swingx.
jar:/usr/share/java/swing-layout.jar:/usr/share/java/unirest-
java.jar:/usr/share/java/unoil.jar --add-
opens=java.desktop/java.awt=ALL-UNNAMED net.sf.jabref.JabRefMain
22:20:39.017 [AWT-EventQueue-0] WARN  net.sf.jabref.JabRefGUI - There
seem to be problems with OpenJDK and the default GTK Look&Feel. Using
Metal L&F instead. Change to another L&F with caution.
22:20:47.775 [AWT-EventQueue-0] WARN
net.sf.jabref.gui.openoffice.OpenOfficePanel - Could not connect to
running OpenOffice/LibreOffice
java.io.IOException: File not found:
/usr/lib/libreoffice/program/classes/program/classes/unoil.jar
        at
net.sf.jabref.gui.openoffice.OpenOfficePanel.connect(OpenOfficePanel.ja
va:415) ~[JabRef-3.8.2.jar:?]
        at
net.sf.jabref.gui.openoffice.OpenOfficePanel.lambda$initPanel$1(OpenOff
icePanel.java:142) ~[JabRef-3.8.2.jar:?]
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967
) [?:?]
        at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:
2308) [?:?]
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.j
ava:405) [?:?]
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
[?:?]
        at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonLis
tener.java:279) [?:?]
        at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297
) [?:?]
        at java.awt.Component.processMouseEvent(Component.java:6635)
[?:?]
        at
javax.swing.JComponent.processMouseEvent(JComponent.java:3342) [?:?]
        at java.awt.Component.processEvent(Component.java:6400) [?:?]
        at java.awt.Container.processEvent(Container.java:2263) [?:?]
        at java.awt.Component.dispatchEventImpl(Component.java:5011)
[?:?]
        at java.awt.Container.dispatchEventImpl(Container.java:2321)
[?:?]
        at java.awt.Component.dispatchEvent(Component.java:4843) [?:?]
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
[?:?]
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
[?:?]
        at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) [?:?]
        at java.awt.Container.dispatchEventImpl(Container.java:2307)
[?:?]
        at java.awt.Window.dispatchEventImpl(Window.java:2772) [?:?]
        at java.awt.Component.dispatchEvent(Component.java:4843) [?:?]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:721) [?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:715) [?:?]
        at java.security.AccessController.doPrivileged(Native Method)
~[?:?]
        at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPri
vilege(ProtectionDomain.java:85) [?:?]
        at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPri
vilege(ProtectionDomain.java:95) [?:?]
        at java.awt.EventQueue$5.run(EventQueue.java:745) [?:?]
        at java.awt.EventQueue$5.run(EventQueue.java:743) [?:?]
        at java.security.AccessController.doPrivileged(Native Method)
~[?:?]
        at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPri
vilege(ProtectionDomain.java:85) [?:?]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) [?:?]
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread
.java:203) [?:?]
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.ja
va:124) [?:?]
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread
.java:113) [?:?]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
[?:?]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[?:?]
        at
java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]

Thanks a lot for the help.

Pep

#895440#69
Date:
2022-02-14 15:00:53 UTC
From:
To:
Thank you Pep!  I will follow-up soon.
#895440#74
Date:
2022-02-18 05:58:09 UTC
From:
To:
Hi Pep.

There is a parameter setting called ooJarsPath that I believe
might be set incorrectly for your installation and is causing the issue
you are seeing.  There are two ways to access the setting.

1) Start JabRef and then navigate to:

  Options -> Preferences -> Show Preferences

The key is "ooJarsPath" and the value should be "/usr/lib/libreoffice".
Based on the exception trace you provided in the bug report, I believe
it is currently set to "/usr/lib/libreoffice/program/classes" on your
system.

OR

2) Stop Jabref (so it doesn't overwrite the file) and edit the setting
directly in this file:

  ~/.java/.userPrefs/net/sf/jabref/prefs.xml

After saving the file, you can restart JabRef.

JabRef automatically appends "/program/classes" to the ooJars path on
Linux (see [1]), and the unoil.jar is found in
/usr/lib/libreoffice/program/classes/unoil.jar, so hopefully that
resolves the issue you are seeing.

Please let me know if it does not.

Cheers,
tony

[1] https://salsa.debian.org/java-team/jabref/-/blob/master/src/main/java/net/sf/jabref/gui/openoffice/OpenOfficePanel.java#L403

#895440#79
Date:
2022-02-21 09:01:12 UTC
From:
To:
Helo, Tony:

Thank's for your help.

El dj. 17 de 02 de 2022 a les 21:58 -0800, en/na tony mancill va
escriure:

In my file there is:

  <entry key="ooExecutablePath" value="/usr/lib/libreoffice/program/soffice"/>
  <entry key="ooJarsPath" value="/usr/lib/libreoffice/program/classes/"/>
  <entry key="ooPath" value="/opt/openoffice.org3"/>

I have changed the value of the "ooJarsPath" to the correct value
"/usr/lib/libreoffice" and now the connection to the LibreOffice is
done correctly.

But when I click on the folder icon (“Select which open Write document
to work on”), nothing happens.

The output from the program is:

******************
$ DEBUG_WRAPPER=true /usr/bin/jabref
[debug] /usr/bin/jabref: Picking up the JVM designated by the alternatives system:  
[debug] /usr/bin/jabref:   JAVA_HOME = '/usr/lib/jvm/java-11-openjdk-amd64'
[debug] /usr/bin/jabref: Found JAVA_HOME = '/usr/lib/jvm/java-11-openjdk-amd64'
[debug] /usr/bin/jabref: Found JAVA_CMD = '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'
[debug] /usr/bin/jabref: Environment variable CLASSPATH is ''
[debug] /usr/bin/jabref: Runnning /usr/lib/jvm/java-11-openjdk-amd64/bin/java  -classpath /usr/share/java/jabref.jar:/usr/share/java/
bcprov.jar:/usr/share/java/antlr3-runtime.jar:/usr/share/java/antlr4-runtime.jar:/usr/share/java/com.android.json.jar:/usr/share/java
/commons-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-lang3.jar:/usr/share/java/commons-logging.jar:/usr/share/j
ava/fontbox.jar:/usr/share/java/glazedlists.jar:/usr/share/java/guava.jar:/usr/share/java/httpasyncclient.jar:/usr/share/java/httpcli
ent.jar:/usr/share/java/httpcore.jar:/usr/share/java/httpcore-nio.jar:/usr/share/java/httpmime.jar:/usr/share/java/java-string-simila
rity.jar:/usr/share/java/jaxb-runtime.jar:/usr/share/java/jempbox.jar:/usr/share/java/jgoodies-common.jar:/usr/share/java/jgoodies-fo
rms.jar:/usr/share/java/jgoodies-looks.jar:/usr/share/java/jhlabs-filters.jar:/usr/share/java/jsoup.jar:/usr/share/java/juh.jar:/usr/
share/java/jurt.jar:/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-jcl.jar:/usr/share/java/microb
a.jar:/usr/share/java/mariadb-java-client.jar:/usr/share/java/pdfbox.jar:/usr/share/java/postgresql.jar:/usr/share/java/ridl.jar:/usr
/share/java/spin.jar:/usr/share/java/swingx.jar:/usr/share/java/swing-layout.jar:/usr/share/java/unirest-java.jar:/usr/share/java/uno
il.jar --add-opens=java.desktop/java.awt=ALL-UNNAMED net.sf.jabref.JabRefMain
09:37:48.598 [AWT-EventQueue-0] WARN  net.sf.jabref.JabRefGUI - There seem to be problems with OpenJDK and the default GTK Look&Feel.
Using Metal L&F instead. Change to another L&F with caution.
09:38:02.728 [AWT-EventQueue-0] ERROR net.sf.jabref.FallbackExceptionHandler - Uncaught exception Occurred in Thread[AWT-EventQueue-0
,6,main]
java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (
jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
       at net.sf.jabref.gui.openoffice.OpenOfficePanel.addURL(OpenOfficePanel.java:484) ~[JabRef-3.8.2.jar:?]
       at net.sf.jabref.gui.openoffice.OpenOfficePanel.connect(OpenOfficePanel.java:419) ~[JabRef-3.8.2.jar:?]
       at net.sf.jabref.gui.openoffice.OpenOfficePanel.lambda$initPanel$1(OpenOfficePanel.java:142) ~[JabRef-3.8.2.jar:?]
       at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
       at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
       at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
       at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
       at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
       at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) ~[?:?]
       at java.awt.Component.processMouseEvent(Component.java:6635) ~[?:?]
       at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
       at java.awt.Component.processEvent(Component.java:6400) ~[?:?]
       at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
       at java.awt.Component.dispatchEventImpl(Component.java:5011) ~[?:?]
       at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
       at java.awt.Component.dispatchEvent(Component.java:4843) ~[?:?]
       at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) ~[?:?]
       at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) ~[?:?]
       at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) ~[?:?]
       at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
       at java.awt.Window.dispatchEventImpl(Window.java:2772) ~[?:?]
       at java.awt.Component.dispatchEvent(Component.java:4843) ~[?:?]
       at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
       at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
       at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
       at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
       at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
       at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
       at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
       at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
       at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
       at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
       at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
       at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
       at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
       at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
       at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
******************

Perhaps the problem is deeper and the connection with a LibreOffice
document is fully broken without OpenJDK 8. The problem is that OpenJDK
8 is not available as a package in Debian Bullseye.

Kind regards and thanks for maintaining JabRef. Pep