Skip to content

Commit dd196e3

Browse files
committed
Update ValidateReadsetFilesAction and ImportReferenceSequencesAction to use FileLike
1 parent ee1d21d commit dd196e3

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisController.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171
import org.labkey.sequenceanalysis.util.FastqUtils;
172172
import org.labkey.sequenceanalysis.util.SequenceUtil;
173173
import org.labkey.vfs.FileLike;
174+
import org.labkey.vfs.FileSystemLike;
174175
import org.springframework.beans.PropertyValues;
175176
import org.springframework.validation.BindException;
176177
import org.springframework.validation.Errors;
@@ -1119,14 +1120,21 @@ public ApiResponse execute(ValidateReadsetImportForm form, BindException errors)
11191120
if (form.getFileNames() != null)
11201121
{
11211122
//TODO: consider proper container??
1122-
File root = PipelineService.get().findPipelineRoot(getContainer()).getRootPath();
1123-
File base = root;
1123+
PipeRoot root = PipelineService.get().findPipelineRoot(getContainer());
1124+
1125+
if (null == root)
1126+
{
1127+
throw new PipelineJobException("Unable to find pipeline root for container: " + getContainer().getPath());
1128+
}
1129+
1130+
FileLike base = root.getRootFileLike();
1131+
11241132
if (form.getPath() != null)
1125-
base = new File(base, form.getPath());
1133+
base = base.resolveChild(form.getPath());
11261134

11271135
for (String fileName : form.getFileNames())
11281136
{
1129-
File f = new File(base, fileName);
1137+
File f = FileSystemLike.toFile(base.resolveChild(fileName));
11301138
ExpData data = ExperimentService.get().getExpDataByURL(f, getContainer());
11311139
if (data != null)
11321140
{
@@ -1137,7 +1145,7 @@ public ApiResponse execute(ValidateReadsetImportForm form, BindException errors)
11371145
Map<String, Object> map = new HashMap<>();
11381146
map.put("fileName", fileName);
11391147
map.put("filePath", f.getPath());
1140-
map.put("relPath", FileUtil.relativePath(FileUtil.getAbsoluteCaseSensitiveFile(root).getPath(), FileUtil.getAbsoluteCaseSensitiveFile(f).getPath()));
1148+
map.put("relPath", FileUtil.relativePath(FileUtil.getAbsoluteCaseSensitiveFile(FileSystemLike.toFile(root.getRootFileLike())).getPath(), FileUtil.getAbsoluteCaseSensitiveFile(f).getPath()));
11411149
map.put("container", getContainer().getId());
11421150
map.put("containerPath", getContainer().getPath());
11431151
String basename = SequenceTaskHelper.getUnzippedBaseName(fileName);
@@ -2320,7 +2328,12 @@ public Object execute(ImportFastaSequencesForm form, BindException errors) throw
23202328
//resolve files
23212329
List<File> files = new ArrayList<>();
23222330
PipeRoot root = PipelineService.get().getPipelineRootSetting(getContainer());
2323-
File baseDir = StringUtils.trimToNull(form.getPath()) == null ? root.getRootPath() : new File(root.getRootPath(), form.getPath());
2331+
FileLike baseDir = null != root ? root.getRootFileLike() : null;
2332+
if (baseDir == null)
2333+
{
2334+
errors.reject(ERROR_MSG, "Pipeline root not configured");
2335+
return null;
2336+
}
23242337
if (!baseDir.exists())
23252338
{
23262339
errors.reject(ERROR_MSG, "Unable to find directory: " + baseDir.getPath());
@@ -2335,7 +2348,7 @@ public Object execute(ImportFastaSequencesForm form, BindException errors) throw
23352348

23362349
for (String fn : form.getFileNames())
23372350
{
2338-
File f = new File(baseDir, fn);
2351+
File f = FileSystemLike.toFile(baseDir.resolveChild(fn));
23392352
if (f.exists())
23402353
{
23412354
files.add(f);

0 commit comments

Comments
 (0)