JabRef / jabref

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

Uncaught exception when adding by DOI #4659

Closed mostueve closed 5 years ago

mostueve commented 5 years ago

When adding a paper through DOI (I always do that), there is an exception. The entry already exists. The DOI is 10.1038/s41598-018-30884-x First, the program did not crash. Now, when trying to reproduce the error, it does.

JabRef 5.0-dev--snapshot--2019-02-04--master--a0c2e04ea Ubuntu 16.04 Linux 4.15.0-46-generic amd64 Java 1.8.0_191

not the same as https://github.com/JabRef/jabref/issues/1239

Steps to reproduce the behavior:

  1. add new entry with the paper already in the library.

Some entries from my bib file:


% Encoding: UTF-8

@Article{Petersen2017,
  author    = {Malte Petersen and Karen Meusemann and Alexander Donath and Daniel Dowling and Shanlin Liu and Ralph S. Peters and Lars Podsiadlowski and Alexandros Vasilikopoulos and Xin Zhou and Bernhard Misof and Oliver Niehuis},
  title     = {Orthograph: a versatile tool for mapping coding nucleotide sequences to clusters of orthologous genes},
  journal   = {{BMC} Bioinformatics},
  year      = {2017},
  volume    = {18},
  number    = {1},
  month     = {feb},
  doi       = {10.1186/s12859-017-1529-8},
  publisher = {Springer Nature},
}

@Article{Cuevas2016,
  author    = {Daniel A. Cuevas and Janaka Edirisinghe and Chris S. Henry and Ross Overbeek and Taylor G. O'Connell and Robert A. Edwards},
  title     = {From {DNA} to {FBA}: How to Build Your Own Genome-Scale Metabolic Model},
  journal   = {Frontiers in Microbiology},
  year      = {2016},
  volume    = {7},
  month     = {jun},
  doi       = {10.3389/fmicb.2016.00907},
  publisher = {Frontiers Media {SA}},
}

@Article{Prigent2017,
  author    = {Sylvain Prigent and Cl{\'{e}}mence Frioux and Simon M. Dittami and Sven Thiele and Abdelhalim Larhlimi and Guillaume Collet and Fabien Gutknecht and Jeanne Got and Damien Eveillard and J{\'{e}}r{\'{e}}mie Bourdon and Fr{\'{e}}d{\'{e}}ric Plewniak and Thierry Tonon and Anne Siegel},
  title     = {Meneco, a Topology-Based Gap-Filling Tool Applicable to Degraded Genome-Wide Metabolic Networks},
  journal   = {{PLOS} Computational Biology},
  year      = {2017},
  volume    = {13},
  number    = {1},
  pages     = {e1005276},
  month     = {jan},
  doi       = {10.1371/journal.pcbi.1005276},
  editor    = {Christoph Kaleta},
  publisher = {Public Library of Science ({PLoS})},
}

@Article{Aziz2008,
  author    = {Ramy K Aziz and Daniela Bartels and Aaron A Best and Matthew DeJongh and Terrence Disz and Robert A Edwards and Kevin Formsma and Svetlana Gerdes and Elizabeth M Glass and Michael Kubal and Folker Meyer and Gary J Olsen and Robert Olson and Andrei L Osterman and Ross A Overbeek and Leslie K McNeil and Daniel Paarmann and Tobias Paczian and Bruce Parrello and Gordon D Pusch and Claudia Reich and Rick Stevens and Olga Vassieva and Veronika Vonstein and Andreas Wilke and Olga Zagnitko},
  title     = {The {RAST} Server: Rapid Annotations using Subsystems Technology},
  journal   = {{BMC} Genomics},
  year      = {2008},
  volume    = {9},
  number    = {1},
  pages     = {75},
  doi       = {10.1186/1471-2164-9-75},
  publisher = {Springer Nature},
}

@Article{Hucka2003,
  author    = {M. Hucka and A. Finney and H. M. Sauro and H. Bolouri and J. C. Doyle and H. Kitano and and the rest of the SBML Forum: and A. P. Arkin and B. J. Bornstein and D. Bray and A. Cornish-Bowden and A. A. Cuellar and S. Dronov and E. D. Gilles and M. Ginkel and V. Gor and I. I. Goryanin and W. J. Hedley and T. C. Hodgman and J.-H. Hofmeyr and P. J. Hunter and N. S. Juty and J. L. Kasberger and A. Kremling and U. Kummer and N. Le Novere and L. M. Loew and D. Lucio and P. Mendes and E. Minch and E. D. Mjolsness and Y. Nakayama and M. R. Nelson and P. F. Nielsen and T. Sakurada and J. C. Schaff and B. E. Shapiro and T. S. Shimizu and H. D. Spence and J. Stelling and K. Takahashi and M. Tomita and J. Wagner and J. Wang},
  title     = {The systems biology markup language ({SBML}): a medium for representation and exchange of biochemical network models},
  journal   = {Bioinformatics},
  year      = {2003},
  volume    = {19},
  number    = {4},
  pages     = {524--531},
  month     = {mar},
  doi       = {10.1093/bioinformatics/btg015},
  publisher = {Oxford University Press ({OUP})},
}

@Article{Schellenberger2011,
  author    = {Jan Schellenberger and Richard Que and Ronan M T Fleming and Ines Thiele and Jeffrey D Orth and Adam M Feist and Daniel C Zielinski and Aarash Bordbar and Nathan E Lewis and Sorena Rahmanian and Joseph Kang and Daniel R Hyduke and Bernhard {\O} Palsson},
  title     = {Quantitative prediction of cellular metabolism with constraint-based models: the {COBRA} Toolbox v2.0},
  journal   = {Nature Protocols},
  year      = {2011},
  volume    = {6},
  number    = {9},
  pages     = {1290--1307},
  month     = {aug},
  doi       = {10.1038/nprot.2011.308},
  publisher = {Springer Nature America, Inc},
}

@Article{Henry2010,
  author    = {Christopher S Henry and Matthew DeJongh and Aaron A Best and Paul M Frybarger and Ben Linsay and Rick L Stevens},
  title     = {High-throughput generation, optimization and analysis of genome-scale metabolic models},
  journal   = {Nature Biotechnology},
  year      = {2010},
  volume    = {28},
  number    = {9},
  pages     = {977--982},
  month     = {aug},
  doi       = {10.1038/nbt.1672},
  publisher = {Springer Nature},
}

@Article{Latendresse2014,
  author    = {Mario Latendresse},
  title     = {Efficiently gap-filling reaction networks},
  journal   = {{BMC} Bioinformatics},
  year      = {2014},
  volume    = {15},
  number    = {1},
  pages     = {225},
  doi       = {10.1186/1471-2105-15-225},
  publisher = {Springer Nature},
}

@Article{Ebrahim2013,
  author    = {Ali Ebrahim and Joshua A Lerman and Bernhard O Palsson and Daniel R Hyduke},
  title     = {{COBRApy}: {COnstraints}-Based Reconstruction and Analysis for Python},
  journal   = {{BMC} Systems Biology},
  year      = {2013},
  volume    = {7},
  number    = {1},
  pages     = {74},
  doi       = {10.1186/1752-0509-7-74},
  publisher = {Springer Nature},
}
Log File // stacktrace java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.get(ArrayList.java:433) at java.awt.Container.createHierarchyEvents(Container.java:1444) at java.awt.Container.createHierarchyEvents(Container.java:1444) at java.awt.Container.createHierarchyEvents(Container.java:1444) at java.awt.Container.createHierarchyEvents(Container.java:1444) at java.awt.Container.createHierarchyEvents(Container.java:1444) at java.awt.Dialog.conditionalShow(Dialog.java:953) at java.awt.Dialog.show(Dialog.java:1045) at java.awt.Component.show(Component.java:1671) at java.awt.Component.setVisible(Component.java:1623) at java.awt.Window.setVisible(Window.java:1014) at java.awt.Dialog.setVisible(Dialog.java:1005) at org.jabref.gui.JabRefDialog.setVisible(JabRefDialog.java:45) at org.jabref.gui.EntryTypeViewModel.lambda$runFetcherWorker$431(EntryTypeViewModel.java:147) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.concurrent.EventHelper.fireEvent(EventHelper.java:219) at javafx.concurrent.Task.fireEvent(Task.java:1356) at javafx.concurrent.Task.setState(Task.java:723) at javafx.concurrent.Task$TaskCallable.lambda$call$80(Task.java:1434) at com.sun.javafx.application.PlatformImpl.lambda$null$117(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$118(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method) at com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(GtkApplication.java:211) at com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:511) at com.sun.glass.ui.EventLoop.enter(EventLoop.java:107) at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:583) at javafx.stage.Stage.showAndWait(Stage.java:474) at javafx.scene.control.HeavyweightDialog.showAndWait(HeavyweightDialog.java:162) at javafx.scene.control.Dialog.showAndWait(Dialog.java:341) at org.jabref.gui.actions.NewEntryAction.execute(NewEntryAction.java:55) at org.jabref.gui.actions.JabRefAction.lambda$new$393(JabRefAction.java:29) at org.controlsfx.control.action.Action.handle(Action.java:419) at org.controlsfx.control.action.Action.handle(Action.java:64) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.control.MenuItem.fire(MenuItem.java:462) at com.sun.javafx.scene.control.ControlAcceleratorSupport.lambda$doAcceleratorInstall$267(ControlAcceleratorSupport.java:165) at com.sun.javafx.scene.KeyboardShortcutsHandler.processAccelerators(KeyboardShortcutsHandler.java:347) at com.sun.javafx.scene.KeyboardShortcutsHandler.dispatchBubblingEvent(KeyboardShortcutsHandler.java:163) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$KeyHandler.process(Scene.java:3964) at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910) at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040) at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501) at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197) at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$299(GlassViewEventHandler.java:228) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227) at com.sun.glass.ui.View.handleKeyEvent(View.java:546) at com.sun.glass.ui.View.notifyKey(View.java:966) at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at com.sun.glass.ui.gtk.GtkApplication.lambda$null$450(GtkApplication.java:139) at java.lang.Thread.run(Thread.java:748)
Siedlerchr commented 5 years ago

Thanks for reporting this, I could reproduce this partly on windows. Interestingly, if you directly paste the DOI on the table, it is added and no error/duplicate check dialog is opened.

The culprit is the ImportInspectionDialog which is one of the dialogs listed in #3861 which still needs to be converted to javafx.

Siedlerchr commented 5 years ago

Thank you for reporting this issue. We think, that is already fixed in our development version and consequently the change will be included in the next release.

We would like to ask you to use a development build from https://builds.jabref.org/master and report back if it works for you. Please remember to make a backup of your library before trying-out this version.