171171import org .labkey .sequenceanalysis .util .FastqUtils ;
172172import org .labkey .sequenceanalysis .util .SequenceUtil ;
173173import org .labkey .vfs .FileLike ;
174+ import org .labkey .vfs .FileSystemLike ;
174175import org .springframework .beans .PropertyValues ;
175176import org .springframework .validation .BindException ;
176177import 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