Skip to content

Author name with special characters breaks JabRef #5899

Closed
@carlinmack

Description

JabRef version on JabRef 5.0-beta.334--2020-01-08--cafdb01 - Windows 10 10.0 amd64 - Java 13.0.1

Steps to reproduce the behavior:

  1. Add the following doi 10.1016/j.cosrev.2017.10.002
  2. Use the search button to download the file
  3. It downloads M�ntyl�2018 - The Evolution of Sentiment Analysis}A Review of Research Topics, Venues, and Top Cited Papers.pdf - note the special characters.
  4. When you try to save jabref logs an error
Log File
org.jabref.logic.exporter.SaveException: Problems saving:
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(Unknown Source)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.doSave(Unknown Source)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(Unknown Source)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(Unknown Source)
  at org.jabref/org.jabref.gui.BasePanel.runCommand(Unknown Source)
  at org.jabref/org.jabref.gui.actions.OldDatabaseCommandWrapper.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.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.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.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.win.WinApplication._runLoop(Native Method)
  at org.jabref.merged.module/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
  at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Error in field 'FILE': Unescaped '}' character without opening bracket ends string prematurely. Field value: :Mntyl 2018 - The Evolution of Sentiment Analysis}A Review of Research Topics, Venues, and Top Cited Papers.PDF:PDF;:M�ntyl�2018 - The Evolution of Sentiment Analysis}A Review of Research Topics, Venues, and Top Cited Papers.PDF:PDF
  at org.jabref/org.jabref.logic.bibtex.BibEntryWriter.writeField(Unknown Source)
  at org.jabref/org.jabref.logic.bibtex.BibEntryWriter.writeRequiredFieldsFirstRemainingFieldsSecond(Unknown Source)
  at org.jabref/org.jabref.logic.bibtex.BibEntryWriter.write(Unknown Source)
  at org.jabref/org.jabref.logic.exporter.BibtexDatabaseWriter.writeEntry(Unknown Source)
  at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(Unknown Source)
  at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(Unknown Source)
  ... 62 more
Caused by: org.jabref.logic.bibtex.InvalidFieldValueException: Unescaped '}' character without opening bracket ends string prematurely. Field value: :Mntyl 2018 - The Evolution of Sentiment Analysis}A Review of Research Topics, Venues, and Top Cited Papers.PDF:PDF;:M�ntyl�2018 - The Evolution of Sentiment Analysis}A Review of Research Topics, Venues, and Top Cited Papers.PDF:PDF
  at org.jabref/org.jabref.logic.bibtex.LatexFieldFormatter.checkBraces(Unknown Source)
  at org.jabref/org.jabref.logic.bibtex.LatexFieldFormatter.formatAndResolveStrings(Unknown Source)
  at org.jabref/org.jabref.logic.bibtex.LatexFieldFormatter.format(Unknown Source)
  ... 68 more

  1. This would be okay as you could delete the lines from Jabref, but it leaves the bottom of the file looking like this
...

@Article{M�ntyl�2018,
  author    = {Mika V. M�ntyl� and Daniel Graziotin and Miikka Kuutila},
  journal   = {Computer Science Review},
  title     = {The evolution of sentiment analysis{\textemdash}A review of research topics, venues, and top cited papers},
  year      = {2018},
  month     = {feb},
  pages     = {16--32},
  volume    = {27},
  doi       = {10.1016/j.cosrev.2017.10.002},
  file      = 
  1. removing the categories and breaking the jabref file
  2. On opening the jabref file you get the following error
    image

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    • Status

      Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions