diff --git a/api/src/org/labkey/api/exp/api/ExpLineage.java b/api/src/org/labkey/api/exp/api/ExpLineage.java index c7087021ff7..772bd46f1f8 100644 --- a/api/src/org/labkey/api/exp/api/ExpLineage.java +++ b/api/src/org/labkey/api/exp/api/ExpLineage.java @@ -384,7 +384,7 @@ else if ((clazz == ExpMaterial.class && target instanceof ExpMaterial) || } else // ExpMaterial or generic Identifiable { - if (!seen.contains(target)) + if (!seen.contains(target) && target != null) { stack.add(target); seen.add(target); diff --git a/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java b/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java index 621bcfdcf7f..9a08e68d4f6 100644 --- a/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java +++ b/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java @@ -397,7 +397,7 @@ private long deleteDataInputs() OntologyManager.deleteOntologyObjects(svc.getSchema(), new SQLFragment("SELECT " + dialect.concatenate("'" + DataInput.lsidPrefix() + "'", "CAST(dataId AS VARCHAR)", "'.'", "CAST(targetApplicationId AS VARCHAR)") + - " FROM " + svc.getTinfoDataInput() + " WHERE TargetApplicationId IN (SELECT RowId FROM exp.ProtocolApplication WHERE RunId = " + getRowId() + ")"), getContainer()); + " FROM " + svc.getTinfoDataInput() + " WHERE TargetApplicationId = ?", getRowId()), getContainer()); return Table.delete(ExperimentServiceImpl.get().getTinfoDataInput(), new SimpleFilter(FieldKey.fromParts("TargetApplicationId"), getRowId())); } @@ -413,7 +413,7 @@ private long deleteMaterialInputs() OntologyManager.deleteOntologyObjects(svc.getSchema(), new SQLFragment("SELECT " + dialect.concatenate("'" + MaterialInput.lsidPrefix() + "'", "CAST(materialId AS VARCHAR)", "'.'", "CAST(targetApplicationId AS VARCHAR)") + - " FROM " + svc.getTinfoMaterialInput() + " WHERE TargetApplicationId IN (SELECT RowId FROM exp.ProtocolApplication WHERE RunId = " + getRowId() + ")"), getContainer()); + " FROM " + svc.getTinfoMaterialInput() + " WHERE TargetApplicationId = ?", getRowId()), getContainer()); return Table.delete(ExperimentServiceImpl.get().getTinfoMaterialInput(), new SimpleFilter(FieldKey.fromParts("TargetApplicationId"), getRowId())); }