-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Fixes miss-parsed names in AutomaticPersonsGroup
#7228
Fixes miss-parsed names in AutomaticPersonsGroup
#7228
Conversation
AutomaticPersonsGroup
AutomaticPersonsGroup
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, what was the problem in the end? It looks like the code is more or less equivalent to the one before, except that now the author parsing and latex2unicode conversion are in a different order (which does make sense!). Is this the only change?
Concerning the caching, I think this is not needed. The parsing of a string to an authorlist is already cached, and getting the last names with latex converted is also cached:
public String getAsLastNamesLatexFree(boolean oxfordComma) { |
However, this code probably needs to be changed a bit to be usable for our purposes. I would suggest to add a
getLastNameLatexFree
in Author
, which caches it's result. This method then can be used in the groups parsing, as well as in AuthorList.getAsLastNamesLatexFree
(there is no need to have an additional cache there again).
src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java
Outdated
Show resolved
Hide resolved
src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java
Outdated
Show resolved
Hide resolved
The other change is that the previous solution relied on the existing Now that I am looking at it again, I'll see if I can extend
In some cases the
and removing the caching for the |
I just feel that if the caching for |
Just a note... It seems that none of the groups use |
I just realized that |
src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java
Outdated
Show resolved
Hide resolved
src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java
Outdated
Show resolved
Hide resolved
I completely agree! The
That would be indeed a good solution, but is sadly not possible. |
Perhaps this is the good way out of this... I just have this itch to kill the
In my opinion, that solution is possible. However, it would require changes to the author parser so that delimiters can be reconstructed. The surrounding braces are removed by And thank you for multiple code review on new year as well! 🎆 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current changes are fine with me. The author caching of latexfree things can be done in a follow-up PR.
Oups. Sorry, I did not know that was a thing. I just wanted to play around with what went wrong with the equality and hashCode (barring my thinking 🤡 ), since it should not hurt to have more "standard" equality and hashCode methods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've also only recently noticed this. I guess it's coming from the recent changes that PRs need to be reviewed before they are merged (that was always a standing requirement, but now github is configured for it is well). @koppor
This is some automatic thing. Any change will dismiss a review. We want to be sure that approvals are "done right". The final approver can check whether the changes from the dismissed approval to the current one are OK. Thus, no worries! 🎉 - And thank you for continuing on working on this. |
…dtask * upstream/master: Upgrade citeproc to 3.x snapshot without graal (#7370) Fix Exception if no AzureInstrumentationKey is available (#7373) Update snapcraft source url (#7372) Fix checkstyle and adjust language GitBook: [master] 3 pages and 32 assets modified Add migration to special field (#7368) GitBook: [master] 5 pages and 29 assets modified Modify message at the duplicates found dialog (#7231) Fixes miss-parsed names in `AutomaticPersonsGroup` (#7228) Fix an issue where the password for a shared SQL database was only remembered if it was the same as the username (#7364) Fix harvard exporter by changing AuthorsFormatter (#7355) Bump styfle/cancel-workflow-action from 0.6.0 to 0.7.0 (#7363) Bump mockito-core from 3.7.0 to 3.7.7 (#7360) Bump org.beryx.jlink from 2.23.1 to 2.23.2 (#7361) Bump libreoffice from 7.0.3 to 7.0.4 (#7362) Export full month name instead of number in ms office (#7358)
* upstream/master: (217 commits) Fix handling of URL in file field (JabRef#7347) Fix expansion of bracketed expressions in RegExpBasedFileFinder (JabRef#7338) Refactor unlinked files (JabRef#7209) Add pressing enter when the search field is focused as a way to trigger search (JabRef#7377) Upgrade citeproc to 3.x snapshot without graal (JabRef#7370) Fix Exception if no AzureInstrumentationKey is available (JabRef#7373) Update snapcraft source url (JabRef#7372) Fix checkstyle and adjust language GitBook: [master] 3 pages and 32 assets modified Add migration to special field (JabRef#7368) GitBook: [master] 5 pages and 29 assets modified Modify message at the duplicates found dialog (JabRef#7231) Fixes miss-parsed names in `AutomaticPersonsGroup` (JabRef#7228) Fix an issue where the password for a shared SQL database was only remembered if it was the same as the username (JabRef#7364) Fix harvard exporter by changing AuthorsFormatter (JabRef#7355) Bump styfle/cancel-workflow-action from 0.6.0 to 0.7.0 (JabRef#7363) Bump mockito-core from 3.7.0 to 3.7.7 (JabRef#7360) Bump org.beryx.jlink from 2.23.1 to 2.23.2 (JabRef#7361) Bump libreoffice from 7.0.3 to 7.0.4 (JabRef#7362) Export full month name instead of number in ms office (JabRef#7358) ... # Conflicts: # external-libraries.md # src/main/java/module-info.java # src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogViewModel.java
Fixes #5833.
This fixes the parsing and matching of authors' last names. It is much slower than the previous solution, and uses more RAM, but I think that is hard/impossible to avoid. However, it is possible that the caching solution can be made smarter, but I leave the decision if it should, to the reviewers 😁
An alternative solution is moving the caching to
AuthorList
, it will make it easier to modify/improve at a later point in time.It will make this PR take quite a bit of more time as I'd like to makeAuthorList
extendList
in that case. See #6552 (comment) for a much longer discussion on that topic.Given that the only thing that should be cached are the last names (and always latex-free), perhaps it has more in common with the autocomplete functionality. I have not looked into that.
Screenshots added in PR description (for UI changes)