-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
JabRef Version
JabRef 5.2--2020-12-14--e9be339
Windows 10 10.0 amd64
Java 14.0.2
- Mandatory: I have tested the latest development version from http://builds.jabref.org/master/ and the problem persists
Summary
JabRef stops responding ("hangs") while processing files during import and provides no user-visible mechanism for progress. The length of the hang is proportional to the number of files selected, particularly evident during the creation of a new library, where many files are more likely to be imported.
The issue is also significantly exacerbated given imported file contents and other metadata are processed (for example: DOI and other lookups in PDF's) using remote service calls, which can and do present and add significant latencies to the processing time.
The issue is more likely to impact two user segments: new/newer users and users converting from other reference managers, where existing file collection sizes may be substantial, and as such presents a significant user experience issue.
A PDF collection of 264 files was used during my testing.
Steps to Reproduce
Lookup->Search for unlinked files- Select
N > 1files for import ->Import - Observe total processing time
- Repeat steps 2-3 for higher file counts (N)
- Observe that the Import dialog and JabRef main window cannot be interacted with (see screenshots below) until Import process completes.
Additional Information (Screenshot)
Proposed Solution
- If Import processing is not currently executed off main thread, execute it off main thread
- On Import execution (start), add a visual progress mechanism to the Import dialog (see screenshot example below)
(Optional) Allow in-progress import to be cancelled (needs UI/UX)
- Example: Change
Importbutton control toCancelonce Import is started
(Optional) Use the Import dialog tree control elements (of selected files) to indicate progress
Example:
- For each folder item, change
☑ <Folder Name> (N files)to☐ <Folder Name> (Processing X of N files). Change ☐ to ☑ once each folder processing is complete. - For each child item (file), change
☑ <filename>to☐ <filename> (Processing...). Change ☐ to ☑ once each file processing is complete
Metadata
Metadata
Assignees
Labels
Type
Projects
Status

