getodk / briefcase

ODK Briefcase is a Java application for fetching and pushing forms and their contents. It helps make billions of data points from ODK portable. Contribute and make the world a better place! ✨💼✨
https://docs.getodk.org/briefcase-intro
Other
60 stars 154 forks source link

No metadata is created when pulling from Collect or Form Definition #841

Closed ggalmazor closed 4 years ago

ggalmazor commented 4 years ago

Software versions

Briefcase v1.7

Problem description

No metadata.json file is created when pulling forms from sources other than Aggregate or Central. This produces errors when trying to fetch metadata belonging to the form key of forms pulled this way.

Steps to reproduce the problem

Expected behavior

High-level behavior should be that forms pulled from Collect or Form Definition should work the same way as forms pulled from servers.

Low-level detail is that all pulled forms should be persisted in the FormMetadataPort, so that a metadata.json file is created in their form dirs.

Other information

Error trace:

Exception in thread "Thread-4" org.opendatakit.briefcase.reused.BriefcaseException
    at java.base/java.util.Optional.orElseThrow(Optional.java:408)
    at org.opendatakit.briefcase.ui.export.ExportPanel.lambda$export$10(ExportPanel.java:198)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    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.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    at org.opendatakit.briefcase.reused.job.JobsRunner.launchAsync(JobsRunner.java:63)
    at org.opendatakit.briefcase.reused.job.JobsRunner.launchAsync(JobsRunner.java:51)
    at org.opendatakit.briefcase.ui.export.ExportPanel.export(ExportPanel.java:229)
    at java.base/java.lang.Thread.run(Thread.java:834)