Skip to content

Group icons don't update immediately #13378

Open
@ryan-carpenter

Description

@ryan-carpenter

JabRef version

Latest development branch build (please note build date below)

Operating system

GNU / Linux

Details on version and operating system

openSUSE Tumbleweed

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. Show group icons in the entry table.
  2. Create a group using a free search expression, and choose an icon for the group.
  3. => The icon appears on matching entries in the table.
  4. Select a matching entry that has no data in the groups field.
  5. Select the groups field and add text that prevents the entry from matching the search-group. Add only one group, without typing the separator character.
  6. => The group icon still appears even though the entry no longer matches the search
  7. Type the separator character in the groups field.
  8. => The unexpected icon disappears and does not reappear again unless the entry is changed to once again match the search criteria.

Basically, the group icons don't "refresh" until a separator is typed in the previously empty groups field.

I don't know if the search criteria matter, but this is an example of the search-group that brought the issue to my attention: groups!=one AND file!=.pdf NOT groups=two NOT groups=three

The icon also remains after a PDF is added to the entry, unless I type a separator in the groups field, triggering an update. This only happens with entries that contain no data in the groups field.

There are some InputMismatchException errors in the log.

Appendix

Log
JabRef 100.0.0
Linux 6.15.0-1-default amd64 
Java 24.0.1 
JavaFX 24.0.1+4
Search query Parsing error
org.antlr.v4.runtime.InputMismatchException
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.BailErrorStrategy.recoverInline(BailErrorStrategy.java:61)
	at org.jabref.jablib/org.jabref.search.SearchParser.searchValue(SearchParser.java:625)
	at org.jabref.jablib/org.jabref.search.SearchParser.comparison(SearchParser.java:503)
	at org.jabref.jablib/org.jabref.search.SearchParser.expression(SearchParser.java:396)
	at org.jabref.jablib/org.jabref.search.SearchParser.expression(SearchParser.java:424)
	at org.jabref.jablib/org.jabref.search.SearchParser.andExpression(SearchParser.java:221)
	at org.jabref.jablib/org.jabref.search.SearchParser.start(SearchParser.java:150)
	at org.jabref.jablib/org.jabref.model.search.query.SearchQuery.getStartContext(SearchQuery.java:100)
	at org.jabref.jablib/org.jabref.model.search.query.SearchQuery.<init>(SearchQuery.java:36)
	at org.jabref.jablib/org.jabref.model.search.query.SearchQuery.<init>(SearchQuery.java:29)
	at org.jabref/org.jabref.gui.entryeditor.SourceTab.highlightSearchPattern(SourceTab.java:127)
	at javafx.graphics@24.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419)
	at javafx.graphics@24.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at javafx.graphics@24.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics@24.0.1/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$1(GtkApplication.java:240)
	at java.base/java.lang.Thread.run(Thread.java:1447)

Search query Parsing error
org.antlr.v4.runtime.InputMismatchException
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.BailErrorStrategy.recoverInline(BailErrorStrategy.java:61)
	at org.jabref.jablib/org.jabref.search.SearchParser.searchValue(SearchParser.java:625)
	at org.jabref.jablib/org.jabref.search.SearchParser.comparison(SearchParser.java:503)
	at org.jabref.jablib/org.jabref.search.SearchParser.expression(SearchParser.java:396)
	at org.jabref.jablib/org.jabref.search.SearchParser.expression(SearchParser.java:424)
	at org.jabref.jablib/org.jabref.search.SearchParser.andExpression(SearchParser.java:221)
	at org.jabref.jablib/org.jabref.search.SearchParser.start(SearchParser.java:150)
	at org.jabref.jablib/org.jabref.model.search.query.SearchQuery.getStartContext(SearchQuery.java:100)
	at org.jabref.jablib/org.jabref.model.search.query.SearchQuery.<init>(SearchQuery.java:36)
	at org.jabref/org.jabref.gui.search.GlobalSearchBar.updateSearchQuery(GlobalSearchBar.java:372)
	at reactfx@2.0-M5-module/org.reactfx.util.FxTimer.lambda$restart$0(FxTimer.java:89)
	at javafx.graphics@24.0.1/com.sun.scenario.animation.shared.TimelineClipCore.visitKeyFrame(TimelineClipCore.java:239)
	at javafx.graphics@24.0.1/com.sun.scenario.animation.shared.TimelineClipCore.playTo(TimelineClipCore.java:180)
	at javafx.graphics@24.0.1/javafx.animation.Timeline.doPlayTo(Timeline.java:172)
	at javafx.graphics@24.0.1/javafx.animation.AnimationAccessorImpl.playTo(AnimationAccessorImpl.java:39)
	at javafx.graphics@24.0.1/com.sun.scenario.animation.shared.SingleLoopClipEnvelope.timePulse(SingleLoopClipEnvelope.java:103)
	at javafx.graphics@24.0.1/javafx.animation.Animation.doTimePulse(Animation.java:1234)
	at javafx.graphics@24.0.1/javafx.animation.Animation$1.timePulse(Animation.java:190)
	at javafx.graphics@24.0.1/com.sun.scenario.animation.AbstractPrimaryTimer.timePulseImpl(AbstractPrimaryTimer.java:316)
	at javafx.graphics@24.0.1/com.sun.scenario.animation.AbstractPrimaryTimer$MainLoop.run(AbstractPrimaryTimer.java:239)
	at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:588)
	at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:572)
	at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:565)
	at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$6(QuantumToolkit.java:346)
	at javafx.graphics@24.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
	at javafx.graphics@24.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics@24.0.1/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

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions