Skip to content
This repository has been archived by the owner on Apr 16, 2022. It is now read-only.

Metadata files not portable between Windows and macOS/Linux #844

Closed
ggalmazor opened this issue Dec 4, 2019 · 0 comments · Fixed by #847
Closed

Metadata files not portable between Windows and macOS/Linux #844

ggalmazor opened this issue Dec 4, 2019 · 0 comments · Fixed by #847
Labels

Comments

@ggalmazor
Copy link
Contributor

Software versions

Briefcase v1.17

Problem description

Paths are stored using the standard directory separators from each platform, which means that Windows hosts will use \ and macOS/Linux hosts will use /.

This causes problems when moving a storage directory created in Windows into a macOS/Linux host and vice versa.

Steps to reproduce the problem

Run Briefcase in Windows and pull some forms.
Copy the SD folder into a macOS/Linux host, and run Briefcase there

Expected behavior

SDs should be portable between WIndows and macOS/Linux hosts. No error should be present in the logs.

Other information

Exception in thread "AWT-EventQueue-0" java.io.UncheckedIOException: java.nio.file.NoSuchFileException: /home/guillermo/Downloads/ODK Briefcase Storage/forms\PSS D28 DRC v4/metadata.json
	at org.opendatakit.briefcase.reused.UncheckedFiles.write(UncheckedFiles.java:80)
	at org.opendatakit.briefcase.reused.UncheckedFiles.write(UncheckedFiles.java:73)
	at org.opendatakit.briefcase.model.form.FileSystemFormMetadataAdapter.serialize(FileSystemFormMetadataAdapter.java:133)
	at org.opendatakit.briefcase.model.form.FileSystemFormMetadataAdapter.persist(FileSystemFormMetadataAdapter.java:106)
	at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:441)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.opendatakit.briefcase.model.form.FileSystemFormMetadataAdapter.syncWithFilesAt(FileSystemFormMetadataAdapter.java:78)
	at org.opendatakit.briefcase.ui.settings.SettingsPanel.lambda$new$2(SettingsPanel.java:61)
	at org.opendatakit.briefcase.ui.settings.SettingsPanelForm.lambda$setStorageLocation$7(SettingsPanelForm.java:131)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
	at org.opendatakit.briefcase.ui.settings.SettingsPanelForm.setStorageLocation(SettingsPanelForm.java:131)
	at org.opendatakit.briefcase.ui.settings.SettingsPanelForm.lambda$new$0(SettingsPanelForm.java:85)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at org.opendatakit.briefcase.ui.settings.SettingsPanelForm.lambda$new$1(SettingsPanelForm.java:85)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6397)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.nio.file.NoSuchFileException: /home/guillermo/Downloads/ODK Briefcase Storage/forms\PSS D28 DRC v4/metadata.json
	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.UnixException.rethrowAsIOException(UnixException.java:116)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
	at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478)
	at java.base/java.nio.file.Files.newOutputStream(Files.java:219)
	at java.base/java.nio.file.Files.write(Files.java:3422)
	at org.opendatakit.briefcase.reused.UncheckedFiles.write(UncheckedFiles.java:78)
	... 53 more
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant