Skip to content

Commit e53dfdb

Browse files
committed
Ensure output files have legal names
1 parent 51e4f6a commit e53dfdb

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

singlecell/src/org/labkey/singlecell/analysis/AbstractSingleCellHandler.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,10 +355,26 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
355355
{
356356
try
357357
{
358+
Set<String> distinctIds = new HashSet<>();
359+
Set<String> copiedFiles = new HashSet<>();
360+
358361
currentFiles = new ArrayList<>();
359362
for (SequenceOutputFile so : inputFiles)
360363
{
364+
String datasetId = FileUtil.makeLegalName(so.getReadset() != null ? ctx.getSequenceSupport().getCachedReadset(so.getReadset()).getName() : so.getName());
365+
if (distinctIds.contains(datasetId))
366+
{
367+
throw new PipelineJobException("Duplicate dataset Ids in input data: " + datasetId);
368+
}
369+
distinctIds.add(datasetId);
370+
361371
//ensure local copy:
372+
if (copiedFiles.contains(so.getFile().getName()))
373+
{
374+
throw new PipelineJobException("Duplicate files names in input data: " + so.getFile().getName());
375+
}
376+
copiedFiles.add(so.getFile().getName());
377+
362378
File local = new File(ctx.getOutputDir(), so.getFile().getName());
363379
if (local.exists())
364380
{
@@ -368,7 +384,6 @@ public void processFilesRemote(List<SequenceOutputFile> inputFiles, JobContext c
368384
FileUtils.copyFile(so.getFile(), local);
369385
_resumer.getFileManager().addIntermediateFile(local);
370386

371-
String datasetId = so.getName();
372387
currentFiles.add(new SingleCellStep.SeuratObjectWrapper(datasetId, datasetId, so.getFile(), so));
373388
}
374389
}

0 commit comments

Comments
 (0)