Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions api/schemas/domainTemplate.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,11 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="EHRComplianceDBTemplateType">
<xs:complexContent>
<xs:extension base="DomainTemplateType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
6 changes: 5 additions & 1 deletion api/src/org/labkey/api/util/ExceptionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,6 @@ protected void renderView(Object model, HttpServletRequest request, HttpServletR
}
}


public static boolean isClientAbortException(Throwable ex)
{
if (ex != null)
Expand All @@ -643,6 +642,7 @@ public static boolean isClientAbortException(Throwable ex)
className.endsWith("ClientAbortException") ||
className.endsWith("FileUploadException"))
{
LOG.trace("Client abort exception", ex);
return true;
}
if (ex.getClass().equals(IllegalStateException.class) && ex.getMessage() != null &&
Expand All @@ -651,20 +651,24 @@ public static boolean isClientAbortException(Throwable ex)
ex.getMessage().contains("Session already invalidated")))

{
LOG.trace("Client abort exception", ex);
return true;
}
if (ex.getClass().equals(SocketException.class) && "Connection reset".equalsIgnoreCase(ex.getMessage()))
{
LOG.trace("Client abort exception", ex);
return true;
}
// Bug 15371 and 34605
if (ex.getClass().equals(IOException.class) && ex.getMessage() != null && (ex.getMessage().contains("disconnected client") || ex.getMessage().contains("Socket read failed")))
{
LOG.trace("Client abort exception", ex);
return true;
}
// Bug 32056
if (ex.getClass().equals(EOFException.class))
{
LOG.trace("Client abort exception", ex);
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()));
}
Expand All @@ -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()));
}
Expand Down