Exception if linked file has masked umlauts / invalid characters in path (from Citavi export in my case)
See original GitHub issueJabRef version
5.6 (latest release)
Operating system
Windows
Details on version and operating system
Windows 10
Checked with the latest development build
- I made a backup of my libraries before testing the latest development version.
- I have tested the latest development version and the problem persists
Steps to reproduce the behaviour
- Have a bibliography with file links that contain masked umlauts (probably this shouldn’t happen in the first place, but apparently Citavi exports that way)
- Open the entry view for it in JabRef and click on the
General
tab - Get an exception (see appendix)
Appendix
Log File
java.nio.file.InvalidPathException: Illegal char <"> at index 69: Attachments/Generatives Design zur Optimierung additiv gefertigter K{"u}hlk{"o}rper (2021).pdf
at java.base/sun.nio.fs.WindowsPathParser.normalize(Unknown Source)
at java.base/sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsPath.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.base/java.nio.file.Path.resolve(Unknown Source)
at org.jabref@5.6.60000/org.jabref.model.util.FileHelper.find(Unknown Source)
at org.jabref@5.6.60000/org.jabref.model.util.FileHelper.lambda$find$0(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.findFirst(Unknown Source)
at org.jabref@5.6.60000/org.jabref.model.util.FileHelper.find(Unknown Source)
at org.jabref@5.6.60000/org.jabref.model.util.FileHelper.find(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFileViewModel.lambda$new$0(Unknown Source)
at org.jabref.merged.module@5.6.60000/de.saxsys.mvvmfx.utils.validation.FunctionBasedValidator.lambda$new$2(Unknown Source)
at org.jabref.merged.module@5.6.60000/de.saxsys.mvvmfx.utils.validation.FunctionBasedValidator.validate(Unknown Source)
at org.jabref.merged.module@5.6.60000/de.saxsys.mvvmfx.utils.validation.FunctionBasedValidator.<init>(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFileViewModel.<init>(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFilesEditorViewModel.lambda$parseToFileViewModel$1(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFilesEditorViewModel.parseToFileViewModel(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.util.BindingsHelper.lambda$bindContentBidirectional$4(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.util.BindingsHelper$BidirectionalListBinding.changed(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringPropertyBase.markInvalid(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringPropertyBase.set(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringPropertyBase.set(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.beans.property.StringProperty.setValue(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.util.BindingsHelper.bindBidirectional(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.util.BindingsHelper.bindBidirectional(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.AbstractEditorViewModel.bindToEntry(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFilesEditorViewModel.bindToEntry(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.fieldeditors.LinkedFilesEditor.bindToEntry(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.entryeditor.FieldsEditorTab.setupPanel(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.entryeditor.FieldsEditorTab.bindToEntry(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.entryeditor.EntryEditorTab.notifyAboutFocus(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.entryeditor.EntryEditor.setEntry(Unknown Source)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at org.jabref@5.6.60000/org.jabref.gui.LibraryTab.lambda$createMainTable$15(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ObservableListBase.endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.SelectedItemsReadOnlyObservableList.lambda$new$0(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ObservableListBase.fireChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ListChangeBuilder.commit(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ListChangeBuilder.endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.collections.ObservableListBase.endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList._endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.control.MultipleSelectionModelBase$SelectedIndicesList._endChange(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.control.ControlUtils.updateSelectedIndices(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.control.TableView$TableViewArrayListSelectionModel.fireCustomSelectedCellsListChangeEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.control.TableView$TableViewArrayListSelectionModel.clearAndSelect(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.control.TableView$TableViewSelectionModel.clearAndSelect(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.simpleSelect(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.behavior.TableCellBehaviorBase.doSelect(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.event.Event.fireEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.Scene$MouseHandler.process(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.Scene.processMouseEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.glass.ui.View.notifyMouse(Unknown Source)
at org.jabref.merged.module@5.6.60000/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at org.jabref.merged.module@5.6.60000/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Issue Analytics
- State:
- Created a year ago
- Comments:14 (14 by maintainers)
Top Results From Across the Web
Error message "Illegal characters in path" when trying to add ...
Trying to attach all the files in a folder on a button click event, but I keep getting the Illegal Characters in Path...
Read more >LaTeX/Bibliography Management - Wikibooks, open books for ...
This database can be referenced in any LaTeX document, and citations made to any record that is contained within the file. This is...
Read more >Prevent file import errors caused by special characters or ...
When you import a file of contacts, we recognize characters that are common to email addresses, such as: Capital letters (A - Z);...
Read more >LaTeX - Mathematical and Computer Sciences
The LaTeX document is a plain text file containing the content of the ... where to find all 95 of the printable ASCII...
Read more >VHH Deliverable D2.1 Advanced Digitization Tool Kit
“Preservation of digital cinema movies” standard3. This tool kit builds on the results of the “Advanced Digitization Workshop” hosted by VHH.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hello, could you assign this to me? I think this issue is quite interesting.
Can I do this job?I am a new bee of opensource