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

file save triggers error #6453

Closed
ilippert opened this issue May 9, 2020 · 34 comments · Fixed by #6455
Closed

file save triggers error #6453

ilippert opened this issue May 9, 2020 · 34 comments · Fixed by #6455
Labels
bug Confirmed bugs or reports that are very likely to be bugs os: linux
Milestone

Comments

@ilippert
Copy link
Contributor

ilippert commented May 9, 2020

JabRef 5.1--2020-05-08--d18ce55
Linux 5.6.8-200.fc31.x86_64 amd64
Java 14.0.1

When I edit text in the entry editor, I often get this exception, without further action. I suspected it might be related to autocompletion, but I read @Siedlerchr as this not being the case at #6351. As you see at #6351, I routinely faced this error for for 8 days now.

The bug issue heading might be equivalent to #6102? - but I am not sure whether it is the same issue.

How to reproduce: edit any text field and after a few seconds the exception shows up.

Log File

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.gui.exporter.SaveDatabaseAction.saveDatabase(Unknown Source)
at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(Unknown Source)
at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(Unknown Source)
at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(Unknown Source)
at org.jabref/org.jabref.gui.dialogs.AutosaveUiManager.listen(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.Subscriber$1.run(Unknown Source)
at org.jabref.merged.module/com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source)
at org.jabref.merged.module/com.google.common.eventbus.EventBus.post(Unknown Source)
at org.jabref/org.jabref.logic.autosaveandbackup.AutosaveManager.lambda$listen$0(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)
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)

@Siedlerchr
Copy link
Member

It's all the same underlying issue. Problem which makes it hard to debug, is that it's not occuring on Windows. But only on linux.


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)

@ilippert
Copy link
Contributor Author

ilippert commented May 9, 2020

Ok, thanks alot. Hm, I have no significant experience in tracing processes, neither in programming. In case you would recommend questions/debugging tasks, I would happily try to serve with relevant data.

@Siedlerchr
Copy link
Member

I have just prepared a fix version at #6455 It would be nice if you could test that when it's ready

@Siedlerchr Siedlerchr mentioned this issue May 9, 2020
5 tasks
@Siedlerchr
Copy link
Member

@ilippert Would be nice if you could test this version:
https://builds.jabref.org/pull/6455/merge/
(I also enabled debug symbols, so we now see line numbers as well in a potential stacktrace)

@ilippert
Copy link
Contributor Author

ilippert commented May 9, 2020

the exception so far does not reoccur - in 10 minutes of testing. will report here if it does over the next days.

@ilippert
Copy link
Contributor Author

ilippert commented May 9, 2020

yeah, but got this now after saving and writing this line:

Log File
org.jabref.logic.exporter.SaveException: Problems saving: java.nio.file.NoSuchFileException: /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib.tmp -> /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(SaveDatabaseAction.java:239)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:195)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:177)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:71)
	at org.jabref/org.jabref.gui.exporter.SaveAction.execute(SaveAction.java:39)
	at org.jabref/org.jabref.gui.actions.JabRefAction.lambda$new$2(JabRefAction.java:40)
	at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Action.java:419)
	at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Action.java:64)
	at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at org.jabref.merged.module/javafx.event.Event.fireEvent(Event.java:198)
	at org.jabref.merged.module/javafx.scene.control.MenuItem.fire(MenuItem.java:459)
	at org.jabref.merged.module/com.sun.javafx.scene.control.ControlAcceleratorSupport.lambda$doAcceleratorInstall$1(ControlAcceleratorSupport.java:165)
	at org.jabref.merged.module/com.sun.javafx.scene.KeyboardShortcutsHandler.processAccelerators(KeyboardShortcutsHandler.java:382)
	at org.jabref.merged.module/com.sun.javafx.scene.KeyboardShortcutsHandler.dispatchBubblingEvent(KeyboardShortcutsHandler.java:162)
	at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at org.jabref.merged.module/javafx.event.Event.fireEvent(Event.java:198)
	at org.jabref.merged.module/javafx.scene.Scene$KeyHandler.process(Scene.java:4098)
	at org.jabref.merged.module/javafx.scene.Scene.processKeyEvent(Scene.java:2157)
	at org.jabref.merged.module/javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2625)
	at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
	at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
	at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
	at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
	at org.jabref.merged.module/com.sun.glass.ui.View.handleKeyEvent(View.java:547)
	at org.jabref.merged.module/com.sun.glass.ui.View.notifyKey(View.java:971)
	at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.nio.file.NoSuchFileException: /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib.tmp -> /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:415)
	at java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:267)
	at java.base/java.nio.file.Files.move(Files.java:1426)
	at org.jabref/org.jabref.logic.exporter.AtomicFileOutputStream.close(AtomicFileOutputStream.java:196)
	at java.base/sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:353)
	at java.base/sun.nio.cs.StreamEncoder.close(StreamEncoder.java:168)
	at java.base/java.io.OutputStreamWriter.close(OutputStreamWriter.java:255)
	at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(BibDatabaseWriter.java:221)
	at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(BibDatabaseWriter.java:161)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(SaveDatabaseAction.java:228)
	... 41 more

@ilippert
Copy link
Contributor Author

ilippert commented May 9, 2020

still on
JabRef 5.1-PullRequest6455.368--2020-05-09--fff4926
Linux 5.6.8-200.fc31.x86_64 amd64
Java 14.0.1

Without me doing anything

Log File
java.lang.RuntimeException: Bidirectional binding failed, setting to the previous value
	at org.jabref.merged.module/com.sun.javafx.binding.BidirectionalBinding$TypedGenericBidirectionalBinding.changed(BidirectionalBinding.java:619)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:360)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
	at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
	at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
	at org.jabref.merged.module/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:50)
	at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(StringProperty.java:65)
	at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(StringProperty.java:57)
	at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.updateLocked(BindingsHelper.java:254)
	at org.jabref/org.jabref.gui.util.BindingsHelper$BidirectionalBinding.changedB(BindingsHelper.java:247)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at org.jabref.merged.module/javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at org.jabref.merged.module/com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at org.jabref.merged.module/com.sun.javafx.collections.MapListenerHelper$Generic.fireValueChangedEvent(MapListenerHelper.java:320)
	at org.jabref.merged.module/com.sun.javafx.collections.MapListenerHelper.fireValueChangedEvent(MapListenerHelper.java:72)
	at org.jabref.merged.module/com.sun.javafx.collections.ObservableMapWrapper.callObservers(ObservableMapWrapper.java:115)
	at org.jabref.merged.module/com.sun.javafx.collections.ObservableMapWrapper.put(ObservableMapWrapper.java:169)
	at org.jabref/org.jabref.model.entry.BibEntry.setField(BibEntry.java:539)
	at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanupSingleField(FieldFormatterCleanup.java:66)
	at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanupAllFields(FieldFormatterCleanup.java:78)
	at org.jabref/org.jabref.model.cleanup.FieldFormatterCleanup.cleanup(FieldFormatterCleanup.java:33)
	at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.applySaveActions(BibDatabaseWriter.java:78)
	at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(BibDatabaseWriter.java:190)
	at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(BibDatabaseWriter.java:161)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(SaveDatabaseAction.java:228)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:195)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:177)
	at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:75)
	at org.jabref/org.jabref.gui.dialogs.AutosaveUiManager.listen(AutosaveUiManager.java:28)
	at jdk.internal.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.jabref.merged.module/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87)
	at org.jabref.merged.module/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:144)
	at org.jabref.merged.module/com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72)
	at org.jabref.merged.module/com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
	at org.jabref.merged.module/com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:67)
	at org.jabref.merged.module/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:108)
	at org.jabref.merged.module/com.google.common.eventbus.EventBus.post(EventBus.java:212)
	at org.jabref/org.jabref.logic.autosaveandbackup.AutosaveManager.lambda$listen$0(AutosaveManager.java:46)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.StringIndexOutOfBoundsException: index 515, length 515
	at java.base/java.lang.String.checkIndex(String.java:3715)
	at java.base/java.lang.AbstractStringBuilder.charAt(AbstractStringBuilder.java:362)
	at java.base/java.lang.StringBuilder.charAt(StringBuilder.java:85)
	at org.jabref.merged.module/javafx.scene.control.TextArea$TextAreaContent.get(TextArea.java:133)
	at org.jabref.merged.module/javafx.scene.control.TextArea$TextAreaContent.get(TextArea.java:311)
	at org.jabref.merged.module/javafx.scene.control.TextArea$TextAreaContent.get(TextArea.java:88)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.get(TextInputControl.java:1365)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.get(TextInputControl.java:1349)
	at org.jabref.merged.module/javafx.beans.binding.StringExpression.getValue(StringExpression.java:51)
	at org.jabref.merged.module/javafx.beans.binding.StringExpression.getValue(StringExpression.java:47)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:355)
	at org.jabref.merged.module/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:1438)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:1442)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:1373)
	at org.jabref.merged.module/javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:1349)
	at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(StringProperty.java:65)
	at org.jabref.merged.module/javafx.beans.property.StringProperty.setValue(StringProperty.java:57)
	at org.jabref.merged.module/com.sun.javafx.binding.BidirectionalBinding$TypedGenericBidirectionalBinding.changed(BidirectionalBinding.java:601)
	... 47 more

@Siedlerchr
Copy link
Member

Okay thanks that is a bit different now, but maybe related. Will look into it the next days

@Siedlerchr
Copy link
Member

Just to clarify, you have entry editor open, at which tab?

@Siedlerchr Siedlerchr added bug Confirmed bugs or reports that are very likely to be bugs os: linux labels May 9, 2020
@ilippert
Copy link
Contributor Author

ilippert commented May 10, 2020 via email

@ilippert
Copy link
Contributor Author

JabRef 5.1-PullRequest6455.368--2020-05-09--fff4926
Linux 5.6.8-200.fc31.x86_64 amd64
Java 14.0.1

I have now been working in the entry editor on a range of tabs and fields and the exception did not reappear.

@Siedlerchr
Copy link
Member

Does the exception occur when you hit save (ctr+s) repeatedly?

@ilippert
Copy link
Contributor Author

I just tested a few times hitting ctrl+s, and also clicking on the buttons: so significant effect.

@ilippert
Copy link
Contributor Author

however, just before I read your question, I got this (I think similar to before)

Log File
org.jabref.logic.exporter.SaveException: Problems saving: java.nio.file.NoSuchFileException: /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib.tmp -> /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(SaveDatabaseAction.java:239)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:195)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:177)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.save(SaveDatabaseAction.java:71)
  at org.jabref/org.jabref.gui.exporter.SaveAction.execute(SaveAction.java:39)
  at org.jabref/org.jabref.gui.actions.JabRefAction.lambda$new$2(JabRefAction.java:40)
  at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Action.java:419)
  at org.jabref.merged.module/org.controlsfx.control.action.Action.handle(Action.java:64)
  at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
  at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
  at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
  at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
  at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
  at org.jabref.merged.module/javafx.event.Event.fireEvent(Event.java:198)
  at org.jabref.merged.module/javafx.scene.Node.fireEvent(Node.java:8885)
  at org.jabref.merged.module/javafx.scene.control.Button.fire(Button.java:203)
  at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
  at org.jabref.merged.module/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
  at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
  at org.jabref.merged.module/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
  at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
  at org.jabref.merged.module/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
  at org.jabref.merged.module/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
  at org.jabref.merged.module/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
  at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
  at org.jabref.merged.module/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
  at org.jabref.merged.module/javafx.event.Event.fireEvent(Event.java:198)
  at org.jabref.merged.module/javafx.scene.Scene$MouseHandler.process(Scene.java:3890)
  at org.jabref.merged.module/javafx.scene.Scene.processMouseEvent(Scene.java:1885)
  at org.jabref.merged.module/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2618)
  at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
  at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
  at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
  at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
  at org.jabref.merged.module/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
  at org.jabref.merged.module/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
  at org.jabref.merged.module/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
  at org.jabref.merged.module/com.sun.glass.ui.View.notifyMouse(View.java:942)
  at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
  at org.jabref.merged.module/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
  at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.nio.file.NoSuchFileException: /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib.tmp -> /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib
  at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
  at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
  at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:415)
  at java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:267)
  at java.base/java.nio.file.Files.move(Files.java:1426)
  at org.jabref/org.jabref.logic.exporter.AtomicFileOutputStream.close(AtomicFileOutputStream.java:196)
  at java.base/sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:353)
  at java.base/sun.nio.cs.StreamEncoder.close(StreamEncoder.java:168)
  at java.base/java.io.OutputStreamWriter.close(OutputStreamWriter.java:255)
  at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.savePartOfDatabase(BibDatabaseWriter.java:221)
  at org.jabref/org.jabref.logic.exporter.BibDatabaseWriter.saveDatabase(BibDatabaseWriter.java:161)
  at org.jabref/org.jabref.gui.exporter.SaveDatabaseAction.saveDatabase(SaveDatabaseAction.java:228)
  ... 60 more

@Siedlerchr
Copy link
Member

Siedlerchr commented May 10, 2020

Thanks, okay, this is a different error now which is related to our Backup-Manager. For some reason the tmp file cannot be renamed (moved) to the bib file, because it's not/no longer existing.

Caused by: java.nio.file.NoSuchFileException: /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib.tmp -> /home/ilippert/Documents/Studies/Publications&Products/Resources/Literature-bibtex.bib

Can you manually check if after hitting save, a bib.tmp file is created?

The Autocomplete error, however seems to be fixed.

@ilippert
Copy link
Contributor Author

Yeah, thanks for the autcomplete error fix!!!

on the java.nio.file.NoSuchFileException: a tmp file is briefly generated and then vanishing. Only occasionally, when I hit save, the error occurs.

@Siedlerchr
Copy link
Member

Okay, thanks. That no such file exception is probably a timing problem and might be related how unix handles files.
https://stackoverflow.com/a/31725384/3450689

@gianlucabaldassarre
Copy link

Hello,
I have an analogous problem with JabRef 5.1, under Windows 10.
I also had the proboem with JabRef 5.0 (I intalled JabRef 5.1 as with a large repositories JabRef 5.0 is very slow and I could not use it, a problem fixed in JabRef 5.1).
In particular the problem manifests when I type in a field, e.g. I tried in "Abstract" or "Comment" (the latter a custom field).
It also manifests with a brand new JabRef repository having just 1 entry.
Actually the problem is two-fold:

  1. Sometimes I get the exception reported below (I report the log for both the exception when typing the Abstract field and when typing the Comment field).
  2. Sometimes the cursor jumps at the beginning of the field. I released this happens each time I save, so a first bug is that the cursor jumps at the beginning of the field when saving, e.g. with the automatic saving, which is very annoying. I read above that the problem of the discussion thread might be related to saving, which would explain why the two errors seemed to me to be linked.

The two problems are so impairing that basically I cannot write text longer than few words in JabRef fields, so I have to write it in another editor and then copy-paste.


TEXT OF EXCEPTION WHEN TYPING IN FIELD "ABSTRACT"
java.lang.IndexOutOfBoundsException
at org.jabref.merged.module/javafx.scene.control.TextInputControl.replaceText(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl.replaceText(Unknown Source)
at org.jabref.merged.module/javafx.scene.control.TextInputControl.replaceSelection(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.TextAreaBehavior.insertNewLine(Unknown Source)
at org.jabref.merged.module/com.sun.javafx.scene.control.behavior.TextAreaBehavior.lambda$new$13(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)

TEXT OF EXCEPTION WHEN TYPING IN FIELD ''COMMENT''
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)
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)

@ilippert
Copy link
Contributor Author

for the jumping cursor, see #5904 - might that be it?

@Siedlerchr
Copy link
Member

@gianlucabaldassarre For the one error on saving please try this version:
https://builds.jabref.org/pull/6455/merge
The other cursor jumping is somehow related to the Autocomplete I think and I could reproduce that in #5904

@Siedlerchr
Copy link
Member

We merged the changes now in master

@gianlucabaldassarre
Copy link

gianlucabaldassarre commented May 14, 2020 via email

@Siedlerchr
Copy link
Member

For some the comment fields cursor jumping seems to be fixed. If not I maybe have another idea.
Regarding content selectors, do you have some defined for multilne fields? I disabled the autompletion only for the multiline fields

@gianlucabaldassarre
Copy link

gianlucabaldassarre commented May 15, 2020 via email

@gianlucabaldassarre
Copy link

gianlucabaldassarre commented May 22, 2020

...one temporary solution for users, to be able to edit the Comment field, and other more-than-one-line fields having the problem, is as follows:

  • Put some text into the Comment field, so the system creates such field
  • Select the tab "{ } biblatex source" of the entry editor, and edit the Comment field (and other fields) from there: this does not have the problem

@gianlucabaldassarre
Copy link

By the way, I recall the attention of the JabRef developers that this is a quite impairing problem of the software since it prevents users from manually changing the contents of more-than-a-line fields: this is a basic important functionality of the software!
Of course how much the problem affects the community also depends on how many systems/configurations have this same problem, a thing I do not know.

@calixtus
Copy link
Member

Hi @gianlucabaldassarre , I took a look into the issue. I was able to partly recreate the problematic behaviour of jabref on my linux machine, although it does not happen every time I'm saving. I made an attempt to fix it, but I'm not quite sure, if it really works. Would you be so kind to test this build here ( https://github.com/JabRef/jabref/suites/720256702/artifacts/7152221 ) and to report, if this problem still persists on your machine?

@calixtus calixtus added the status: waiting-for-feedback The submitter or other users need to provide more information about the issue label May 27, 2020
@gianlucabaldassarre
Copy link

gianlucabaldassarre commented May 28, 2020 via email

@Siedlerchr
Copy link
Member

@calixtus calixtus removed the status: waiting-for-feedback The submitter or other users need to provide more information about the issue label May 28, 2020
@calixtus
Copy link
Member

I'm confused. I thought this is a linux specific issue. Does this affect windows too?

@gianlucabaldassarre
Copy link

System:
JabRef 5.1-PullRequest6528.455--2020-05-26--0965648
Windows 10 10.0 amd64
Java 14.0.1

@Siedlerchr: the problem of the cursor jumping at the beginning of multi-line fields when saving is still there (with https://github.com/JabRef/jabref/suites/720256702/artifacts/7152223)

@calixtus: I confirm, the problem is also in Windows 10 system (see system features above).

@koppor
Copy link
Member

koppor commented Jun 9, 2020

Refs JabRef#390

@koppor
Copy link
Member

koppor commented Jun 9, 2020

Options:

  • Remove normaliaztion --> no, we need it
  • Normalize field during save of text editor

@Siedlerchr
Copy link
Member

The multiline comment issue just got merged. Please wait until the new development version is ready

koppor pushed a commit that referenced this issue Apr 1, 2023
41531558a8 Fix unsigned newspaper articles throughout Chicago 17 (#6486)
7678212826 Create trames.csl (#6479)
0cae26ac85 Update hochschule-fur-soziale-arbeit-fhnw.csl (#6480)
85c4b693a2 Update to UP Harvard Theology & Religion (#6485)
c273aa7e43 Update ieee.csl (#6481)
fe67b80e47 Update open-window.csl (#6367)
f2229705ef Create iainutuban-tarbiyah.csl (#6361)
1867a56a26 Create business-and-human-rights-journal (#6359)
1371dbdf26 Update iso690-author-date-es.csl (#6477)
6953a43efd Update ieee.csl (#6478)
f56d5ef1cc Create czech-journal-of-international-relations.csl (#6453)
678b53f99c Update harvard-stellenbosch-university.csl (#6464)
3074938038 Update ucl-university-college-apa.csl (#6475)
27dab9ea0f Update iso690-author-date-es.csl (#6476)
a8aea63d00 Create elsevier-american-chemical-society.csl (#6342)
f8f290fa63 Update iso690-author-date-es.csl (#6472)
7fdc621eee Update journal-of-neolithic-archaeology (#6466)
7025568e70 Update offa.csl (#6465)
2d69299b19 Create uni-fribourg-theologie.csl (#6473)
8db531a73e Create travail-et-emploi.csl (#6351)
c8b54fc531 Make monash-university-harvard dependent style (#6470)
b95f59ff5c Update journal-of-the-marine-biological-association-of-the-united-kingdom.csl (#6456)
a12b513119 Update universite-du-quebec-a-montreal.csl (#6463)
048e6641e4 Update zeitschrift-fur-geschichtsdidaktik.csl (#6454)
f0d3d7ef15 Update journal-fur-kulturpflanzen-journal-of-cultivated-plants.csl (#6447)
3b814fe048 Update the-accounting-review.csl (#6459)
f24befd580 Update survey-of-ophthalmology.csl from ama.csl to its own independent style (#6460)
c868ab54f6 Create vancouver-alphabetical.csl (#6461)
782e39cfe1 Update american-institute-of-physics.csl (#6457)
a56cf03e3c Fix Chicago Cases & Newspaper sorting (#6458)

git-subtree-dir: buildres/csl/csl-styles
git-subtree-split: 41531558a873b2533f2d17d8d6484c2408174fce
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 os: linux
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants