jabref
jabref copied to clipboard
Cursors jumps to the beginning
Using JabRef 5.* dev (29th January 2020).
I intensivly use the "comments" field to add my own notes to the entries. So there is often a lot of text and lines in it.
While typing it often happens that the cursor jumps back to the first line and first column.
On Windows 10 I cannot reproduce the error. Could you also please try the latest snapshot and report your OS?
I am confused. Somebody asked me (on a GitHub issue) to record a video about this behavior. I did and uploaded it here/somehwere (?).
Maybe it was a forked repo?
I got it. I was totally stumped about reading to much Issues the same time. ;) I posted the video on the wrong Issue.
5904 - entry window - cursor jump.zip
The zip file contains an avi-file (recorded with MS PowerPoint 2016 and converted with Avidemux) and the bib-file generated while the recording. The video is recorded on Windows 10. But I can also reproduce the behaviour with Debian 10.
What you can see in the video: The first jumps of the cursors looks like that they are somehow connected to my Strg+S pressing. But later the jumps ocure also without saving. There is also a nice Exception. btw: I totally ignore exceptions in the current state of JabRef because they appear so often in so many cases.
@Codeberg-AsGithubAlternative-buhtz Wasn't this meant as an answer to this question?
https://github.com/JabRef/jabref/issues/5079#issuecomment-581174352
I do not understand your question.
I am referring to this:
I am confused. Somebody asked me (on a GitHub issue) to record a video about this behavior. I did and uploaded it here/somehwere (?).
Maybe it was a forked repo?
(https://github.com/JabRef/jabref/issues/5904#issuecomment-583892624)
and this:
I got it. I was totally stumped about reading to much Issues the same time. ;) I posted the video on the wrong Issue.
(https://github.com/JabRef/jabref/issues/5904#issuecomment-583894638)
Isn't this video meant as a response to the question made here: https://github.com/JabRef/jabref/issues/5079#issuecomment-581174352
?
Correct. The video was not an answer to #5079 . Because of that I removed the video and my comment from there.
I am not sure how this confusion could happened. ;)
The video is for this (#5904) Issue to demonstrate the problem.
Ah, cheers! Sorry for the confusion.
I can reproduce this issue if one places a whitespace at the end of the comment and saves the library with ctrl+s
Edit: This actually happens with every field
Can still reproduce with windows nightly from 24.02.2020
I have the same issue on Windows 10 (10.0 amd64) with JabRef 5.0--2020-03-06--2e6f433 and Java 13.0.2.
On my system, the following approach reproduces the issue:
- Create new entry
- Go to 'Comments' field
- Press
Enteronce - Keep pressing any key, e.g.
a
After about 400 keystrokes (the number varies) the cursor jumps to the beginning of the comments field.
If I press Spacebar instead of Enter in Step 3, I get an uncaught exception, again after about 400 keystrokes:
java.lang.IndexOutOfBoundsException
at org.jabref.merged.module/javafx.scene.control.TextInputControl.replaceText(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.TextAreaBehavior.replaceText(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.TextInputControlBehavior.defaultKeyTyped(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at org.jabref.merged.module/javafx.event.Event.fireEvent(Unknown Source)
at org.jabref.merged.module/javafx.scene.Scene$KeyHandler.process(Unknown Source)
at org.jabref.merged.module/javafx.scene.Scene.processKeyEvent(Unknown Source)
at org.jabref.merged.module/javafx.scene.Scene$ScenePeerListener.keyEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(Unknown Source)
at org.jabref.merged.module/com.sun.glass.ui.View.handleKeyEvent(Unknown Source)
at org.jabref.merged.module/com.sun.glass.ui.View.notifyKey(Unknown Source)
at org.jabref.merged.module/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at org.jabref.merged.module/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
I have the same (or at least similar) issue. However there is a popup error too.
JabRef 5.0--2020-03-09--6bff936
Linux 5.3.0-51-generic amd64
Java 13.0.2
Ubuntu 18.04.4 LTS
me@pc:~$ java --version
openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
Content of the popup:
java.lang.IllegalStateException: Task must only be used from the FX Application Thread
at org.jabref.merged.module/javafx.concurrent.Task.checkThread(Unknown Source)
at org.jabref.merged.module/javafx.concurrent.Task.isRunning(Unknown Source)
at org.jabref.merged.module/org.controlsfx.control.textfield.AutoCompletionBinding.onUserInputChanged(Unknown Source)
at org.jabref.merged.module/org.controlsfx.control.textfield.AutoCompletionBinding.setUserInput(Unknown Source)
at org.jabref/org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.setUserInputText(Unknown Source)
at org.jabref/org.jabref.gui.autocompleter.AutoCompletionTextInputBinding.lambda$new$0(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.markInvalid(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.controlContentHasChanged(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl.lambda$new$0(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextArea$TextAreaContent.insert(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl.replaceText(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl.filterAndSet(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.doSet(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.set(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.set(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.BidirectionalBinding$TypedGenericBidirectionalBinding.changed(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.markInvalid(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.set(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.set(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.updateLocked(Unknown Source)
at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.changedB(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/javafx.beans.binding.ObjectBinding.invalidate(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.binding.BindingHelperObserver.invalidated(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.collections.ObservableMapWrapper.callObservers(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.collections.ObservableMapWrapper.put(Unknown Source)
at org.jabref/org.jabref.model.entry.BibEntry.setField(Unknown Source)
at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanupSingleField(Unknown Source)
at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanupAllFields(Unknown Source)
at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanup(Unknown Source)
at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.applySaveActions(Unknown Source)
at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(Unknown Source)
at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(Unknown Source)
at org.jabref/org.jabref.logic.autosaveandbackup.BackupManager.performBackup(Unknown Source)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at org.jabref/org.jabref.logic.autosaveandbackup.BackupManager.lambda$startBackupTask$2(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)windows sometimes
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
I also know this popup error. But I wasn't able to reproduce it stable. So I did not report it here.
There have been multiple reports on the errors. They have more or less the same underlying reason (gui access from other thread). Comes from saving/backup manager.
Could you all please try this version? https://builds.jabref.org/pull/6455/merge/ I disabled autoconpletion for multiline fields as it appeared to be the reason for the error and the threading error is fixed as well.
I did a quick test and the issue seems to be fixed! Thanks :)
I'll keep using your build and let you know if any errors occur.
For me, there's no change in the "cursor bouncing to top of comment window" problem.
JabRef 5.1-PullRequest6455.385--2020-05-11--afc4fd7 Windows 10 10.0 amd64 Java 14.0.1
We merged the changes from the PR to master
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.
Still no change. The cursor bounces to the top of the comment window.
JabRef 5.1--2020-05-12--ce49261 Windows 10 10.0 amd64 Java 14.0.1
I can confirm, that the problem of the bouncing cursor is still present. It is particularly tedious because it jumps while writing.
The Markdown feature is awesome, however!
One slight problem I am experiencing with the Markdown extension is, that the symbol ">" is not parsed and instead I get >. This might be due to the German keyboard, though
JabRef 5.1--2020-05-18--a4f8ba3 Windows 10 10.0 amd64 Java 14.0.1
Internal idea: we check at the update of a field: if new text != old text then udpate (see binding)
Can confirm that the curors still jumps to the beginning when saving.
JabRef 5.1--2020-05-26--0d7156b Windows 10 10.0 amd64 Java 14.0.1
Interestingly, the jumping to the start seems to have disappeared in
JabRef 5.1--2020-06-15--ed96faa
Linux 5.6.0-2-amd64 amd64
Java 14.0.1
(But I'm not quite sure yet, it is hard to trigger on purpose...)
However, I still get a "The library has been modified by another program" warning which says the comment has changed:

@reox We are currently investigating this issue and discovered that it has to do with different line break characters. See #6528
Not disappeared by me. Cursor still jumps in
JabRef 5.1--2020-06-22--403a47f
Windows 10 10.0 amd64
Java 14.0.1
JabRef 5.1--2020-06-25--d364ffb Linux 5.6.19-300.fc32.x86_64 amd64 Java 14.0.1
cursor still jumps
I think i fixed the issue with cursor jumping. This might also fix the library changed. Could you please test this version from here? https://builds.jabref.org/pull/6528/merge/
thanks a lot!
JabRef 5.1-PullRequest6528.793--2020-07-11--93eaf4f Linux 5.7.7-200.fc32.x86_64 amd64 Java 14.0.1
seems to have fixed this, tells my 10 min testing. i would post it here, if it reappears anytime soon?
Yes, if you encounter the problem again with that version please let us know.
Can confirm the fix for this version
JabRef 5.1-PullRequest6528.793--2020-07-11--93eaf4f
Windows 10 10.0 amd64
Java 14.0.1
https://github.com/JabRef/jabref/pull/6528