Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When mouse is over group title, inaccurate group description is displayed #3275

Closed
psychelzh opened this issue Oct 7, 2017 · 9 comments
Closed
Labels
bug Confirmed bugs or reports that are very likely to be bugs groups ui

Comments

@psychelzh
Copy link
Contributor

psychelzh commented Oct 7, 2017

JabRef version 4.0 on Java 1.8.0_144

I guess the group titles have a mouseover method, which displays the group descriptions. Unfortunately, they are a little bit messy here. For example, the following first screenshot suggests the description of BART group is The articles about ...., but in fact it should be The Balloon Analogue Risk Task (see the second screenshot).

image

image

I do not know whether the logged details is relevant or not.

Log File
Uncaught exception occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.NullPointerException
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:17)
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:11)
  at org.jabref.gui.maintable.MainTable.matches(MainTable.java:545)
  at org.jabref.gui.maintable.MainTable.getCellRenderer(MainTable.java:247)
  at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
  at javax.swing.plaf.ComponentUI.update(Unknown Source)
  at javax.swing.JComponent.paintComponent(Unknown Source)
  at javax.swing.JComponent.paint(Unknown Source)
  at javax.swing.JComponent.paintToOffscreen(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
  at javax.swing.RepaintManager.paint(Unknown Source)
  at javax.swing.JComponent._paintImmediately(Unknown Source)
  at javax.swing.JComponent.paintImmediately(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.access$1200(Unknown Source)
  at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
  at java.awt.event.InvocationEvent.dispatch(Unknown Source)
  at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
  at java.awt.EventQueue.access$500(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at java.awt.EventQueue.dispatchEvent(Unknown Source)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.run(Unknown Source)

Uncaught exception occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.NullPointerException
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:17)
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:11)
  at org.jabref.gui.maintable.MainTable.matches(MainTable.java:545)
  at org.jabref.gui.maintable.MainTable.getCellRenderer(MainTable.java:247)
  at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
  at javax.swing.plaf.ComponentUI.update(Unknown Source)
  at javax.swing.JComponent.paintComponent(Unknown Source)
  at javax.swing.JComponent.paint(Unknown Source)
  at javax.swing.JComponent.paintToOffscreen(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
  at javax.swing.RepaintManager.paint(Unknown Source)
  at javax.swing.JComponent._paintImmediately(Unknown Source)
  at javax.swing.JComponent.paintImmediately(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.access$1200(Unknown Source)
  at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
  at java.awt.event.InvocationEvent.dispatch(Unknown Source)
  at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
  at java.awt.EventQueue.access$500(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at java.awt.EventQueue.dispatchEvent(Unknown Source)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.run(Unknown Source)

Uncaught exception occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.NullPointerException
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:17)
  at org.jabref.gui.groups.GroupMatcher.matches(GroupMatcher.java:11)
  at org.jabref.gui.maintable.MainTable.matches(MainTable.java:545)
  at org.jabref.gui.maintable.MainTable.getCellRenderer(MainTable.java:247)
  at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
  at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
  at javax.swing.plaf.ComponentUI.update(Unknown Source)
  at javax.swing.JComponent.paintComponent(Unknown Source)
  at javax.swing.JComponent.paint(Unknown Source)
  at javax.swing.JComponent.paintToOffscreen(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
  at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
  at javax.swing.RepaintManager.paint(Unknown Source)
  at javax.swing.JComponent._paintImmediately(Unknown Source)
  at javax.swing.JComponent.paintImmediately(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at javax.swing.RepaintManager$4.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
  at javax.swing.RepaintManager.access$1200(Unknown Source)
  at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
  at java.awt.event.InvocationEvent.dispatch(Unknown Source)
  at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
  at java.awt.EventQueue.access$500(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.awt.EventQueue$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
  at java.awt.EventQueue.dispatchEvent(Unknown Source)
  at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  at java.awt.EventDispatchThread.run(Unknown Source)
@lenhard lenhard added groups bug Confirmed bugs or reports that are very likely to be bugs ui labels Oct 7, 2017
@stefan-kolb
Copy link
Member

I cannot reproduce this issue, descriptions are displayed as expected.

Exceptions refer to MainTable.java:

    private boolean matches(int row, Matcher<BibEntry> m) {
        Optional<BibEntry> bibEntry = getBibEntry(row);

        if (bibEntry.isPresent()) {
            return m.matches(bibEntry.get());
        }
        return m.matches(null);
    }

Dunno why matches is called with null...

So GroupMatcher.java will obviously fail.

public class GroupMatcher implements Matcher<BibEntry> {

    public static final GroupMatcher INSTANCE = new GroupMatcher();

    @Override
    public boolean matches(BibEntry entry) {
        return entry.isGroupHit();
    }
}

@stefan-kolb stefan-kolb added the status: waiting-for-feedback The submitter or other users need to provide more information about the issue label Oct 12, 2017
@psychelzh
Copy link
Contributor Author

psychelzh commented Oct 13, 2017

I guess it is because of one of my .bib file. When I switched to another one, everything is then okay. But I really do not know why that specific .bib file is problematic. Do you know of any tool to check it?

@tobiasdiez tobiasdiez mentioned this issue Oct 18, 2017
6 tasks
@lenhard
Copy link
Member

lenhard commented Oct 19, 2017

@psychelzh Could you please try out the version available here http://builds.jabref.org/fixNPE/ and let us know if it fixes the problem?

@psychelzh
Copy link
Contributor Author

Thanks. I have tested it. What I am more convinced is that I have got a corrupted copy of .bib database, because

  1. It constantly shows that there is some modification to be saved, when, in fact, I did nothing but just opened it.
  2. When it is opened, all of the opened databases will show inaccurate group description; but when I close it, other opened databases just turn normal and show the right description.

@tobiasdiez
Copy link
Member

@psychelzh If you want you can send your bib file to developers@jabref.org and we will have a look.

@psychelzh
Copy link
Contributor Author

OK, I am sending it.

@lenhard
Copy link
Member

lenhard commented Dec 5, 2017

Any updates here?

@psychelzh
Copy link
Contributor Author

I have sent the copy of bibtex to you, and have you received it?

@lenhard lenhard removed the status: waiting-for-feedback The submitter or other users need to provide more information about the issue label Feb 21, 2018
@Siedlerchr
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Confirmed bugs or reports that are very likely to be bugs groups ui
Projects
None yet
Development

No branches or pull requests

5 participants