Skip to content

LO/OO bibliography error when using citations with non-Latin charcters #13301

Open
@subhramit

Description

@subhramit

JabRef version

6.0-alpha2

Operating system

Windows

Details on version and operating system

Windows 11

Checked with the latest development build (copy version output from About dialog)

  • I made a backup of my libraries before testing the latest development version.
  • I have tested the latest development version and the problem persists

Steps to reproduce the behaviour

  1. Start JabRef
  2. Start a LibreOffice Writer document instance
  3. Connect to the document instance from JabRef's OO/LO panel
  4. Open a new library
  5. Add the following entries to your library:
@Article{Ты2025,
  author = {Ты},
  title  = {You},
  year   = {2025},
}

@Article{Я2025,
  author = {Я},
  title  = {I},
  year   = {2025},
}
  1. Select a CSL style from the "Select Style" dialog of the OO/LO panel
  2. Cite any of the above entries
  3. Click the "Make/Sync" bibliography button from the OO/LO panel (not needed if OO Panel->Settings->Automatically sync bibliography is enabled)

You will observe the following exception (see appendix) along with the error dialog:

No cited entries found in the document.

And log:

2025-06-10 22:32:55 [JavaFX Application Thread] org.jabref.logic.openoffice.ReferenceMark.parse()
WARN: CSLReferenceMark: name=JABREF_Ты2025 CID_1 e2b1z2jv does not match pattern. Assuming random values

Cause

Non-Latin characters are not recognized valid in the "reference marks" format used for LO/OO in JabRef

Hints to solve

Adapt the regex in:

private static final Pattern REFERENCE_MARK_FORMAT = Pattern.compile("^(JABREF_[\\w-:./]+ CID_\\d+(?:, JABREF_[\\w-:./]+ CID_\\d+)*) (\\w+)$");
private static final Pattern ENTRY_PATTERN = Pattern.compile("JABREF_([\\w-:./]+) CID_(\\d+)");

Pre-requisite context for people not familiar with this aspect of JabRef:

OO/LO integration: https://docs.jabref.org/cite/openofficeintegration
CSL styles - citing and generating bibliographies: https://blog.jabref.org/2024/08/26/GSoC-CSL/
"Reference marks" in LibreOffice: https://devdocs.jabref.org/code-howtos/openoffice/overview.html (may be slightly outdated but conceptually valid).

Test for completion:

Screen recording of bibliography being successfully generated in the document from the entries mentioned.

Appendix

...

Log File
com.sun.star.uno.RuntimeException: Nothing to unlock
	at org.libreoffice.uno/com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:158)
	at org.libreoffice.uno/com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:122)
	at org.libreoffice.uno/com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:312)
	at org.libreoffice.uno/com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:281)
	at org.libreoffice.uno/com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:81)
	at org.libreoffice.uno/com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:619)
	at org.libreoffice.uno/com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:145)
	at org.libreoffice.uno/com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:129)
	at jdk.proxy2/jdk.proxy2.$Proxy24.unlockControllers(Unknown Source)
	at org.jabref/org.jabref.gui.openoffice.OOBibBase.guiActionInsertEntry(OOBibBase.java:619)
	at org.jabref/org.jabref.gui.openoffice.OpenOfficePanel.pushEntries(OpenOfficePanel.java:582)
	at org.jabref/org.jabref.gui.openoffice.OpenOfficePanel.lambda$initPanel$5(OpenOfficePanel.java:259)
	at javafx.base@25-ea/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base@25-ea/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
	at javafx.base@25-ea/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
	at javafx.base@25-ea/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@25-ea/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base@25-ea/javafx.event.Event.fireEvent(Event.java:199)
	at javafx.graphics@25-ea/javafx.scene.Node.fireEvent(Node.java:9005)
	at javafx.controls@25-ea/javafx.scene.control.Button.fire(Button.java:203)
	at javafx.controls@25-ea/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:207)
	at javafx.controls@25-ea/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base@25-ea/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at javafx.base@25-ea/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base@25-ea/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
	at javafx.base@25-ea/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
	at javafx.base@25-ea/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@25-ea/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@25-ea/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@25-ea/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base@25-ea/javafx.event.Event.fireEvent(Event.java:199)
	at javafx.graphics@25-ea/javafx.scene.Scene$MouseHandler.process(Scene.java:4005)
	at javafx.graphics@25-ea/javafx.scene.Scene.processMouseEvent(Scene.java:1934)
	at javafx.graphics@25-ea/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2763)
	at javafx.graphics@25-ea/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:352)
	at javafx.graphics@25-ea/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:254)
	at javafx.graphics@25-ea/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
	at javafx.graphics@25-ea/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:386)
	at javafx.graphics@25-ea/com.sun.glass.ui.View.handleMouseEvent(View.java:560)
	at javafx.graphics@25-ea/com.sun.glass.ui.View.notifyMouse(View.java:946)
	at javafx.graphics@25-ea/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics@25-ea/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$1(GtkApplication.java:240)
	at java.base/java.lang.Thread.run(Thread.java:1447)

Metadata

Metadata

Assignees

Labels

component: libre-officegood first issueAn issue intended for project-newcomers. Varies in difficulty.📍 AssignedAssigned by assign-issue-action (or manually assigned)

Type

Projects

Status

Assigned

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions