getodk/briefcase

No metadata is created when pulling from Collect or Form Definition

ggalmazor opened this issue · 0 comments

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

  • Pull a form from Collect or Form Definition
  • Export the form

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)