Skip to content

Commit 4899e27

Browse files
committed
Better null handling in jbrowse2
1 parent f54a8e8 commit 4899e27

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

jbrowse/src/org/labkey/jbrowse/model/JsonFile.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,11 +282,11 @@ JSONObject toTrackJson(User u, ReferenceGenome rg, Logger log) throws PipelineJo
282282
JSONObject ret;
283283
if (TRACK_TYPES.vcf.getFileType().isType(targetFile.getFile()))
284284
{
285-
ret = getVcfTrack(targetFile, rg);
285+
ret = getVcfTrack(log, targetFile, rg);
286286
}
287287
else if (TRACK_TYPES.bam.getFileType().isType(targetFile.getFile()))
288288
{
289-
ret = getBamTrack(targetFile, rg);
289+
ret = getBamTrack(log, targetFile, rg);
290290
}
291291
else if (TRACK_TYPES.gff.getFileType().isType(targetFile.getFile()))
292292
{
@@ -309,6 +309,11 @@ else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
309309
return null;
310310
}
311311

312+
if (ret == null)
313+
{
314+
return null;
315+
}
316+
312317
ret = possiblyAddSearchConfig(ret, rg);
313318

314319
//TODO: validate/document additional properties.
@@ -472,7 +477,7 @@ public boolean doExpectedSearchIndexesExist()
472477
return true;
473478
}
474479

475-
private JSONObject getVcfTrack(ExpData targetFile, ReferenceGenome rg)
480+
private JSONObject getVcfTrack(Logger log, ExpData targetFile, ReferenceGenome rg)
476481
{
477482
JSONObject ret = new JSONObject();
478483
ret.put("type", getTrackType());
@@ -483,6 +488,12 @@ private JSONObject getVcfTrack(ExpData targetFile, ReferenceGenome rg)
483488
}});
484489

485490
String url = targetFile.getWebDavURL(ExpData.PathType.full);
491+
if (url == null)
492+
{
493+
log.info("Unable to create WebDav URL for JBrowse resource with path: " + targetFile.getFile());
494+
return null;
495+
}
496+
486497
ret.put("adapter", new JSONObject(){{
487498
put("type", "VcfTabixAdapter");
488499
put("vcfGzLocation", new JSONObject(){{
@@ -500,7 +511,7 @@ private JSONObject getVcfTrack(ExpData targetFile, ReferenceGenome rg)
500511
return ret;
501512
}
502513

503-
private JSONObject getBamTrack(ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
514+
private JSONObject getBamTrack(Logger log, ExpData targetFile, ReferenceGenome rg)
504515
{
505516
JSONObject ret = new JSONObject();
506517
ret.put("type", getTrackType());
@@ -514,6 +525,12 @@ private JSONObject getBamTrack(ExpData targetFile, ReferenceGenome rg) throws Pi
514525
}});
515526

516527
String url = targetFile.getWebDavURL(ExpData.PathType.full);
528+
if (url == null)
529+
{
530+
log.info("Unable to create WebDav URL for JBrowse resource with path: " + targetFile.getFile());
531+
return null;
532+
}
533+
517534
ret.put("adapter", new JSONObject(){{
518535
put("type", "BamAdapter");
519536
put("bamLocation", new JSONObject(){{

0 commit comments

Comments
 (0)