diff --git a/api/schemas/domainTemplate.xsd b/api/schemas/domainTemplate.xsd index 39faa67f455..12614675f79 100644 --- a/api/schemas/domainTemplate.xsd +++ b/api/schemas/domainTemplate.xsd @@ -192,4 +192,11 @@ + + + + + + + diff --git a/api/src/org/labkey/api/util/ExceptionUtil.java b/api/src/org/labkey/api/util/ExceptionUtil.java index 281727fdefd..dd22243ba3b 100644 --- a/api/src/org/labkey/api/util/ExceptionUtil.java +++ b/api/src/org/labkey/api/util/ExceptionUtil.java @@ -632,7 +632,6 @@ protected void renderView(Object model, HttpServletRequest request, HttpServletR } } - public static boolean isClientAbortException(Throwable ex) { if (ex != null) @@ -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 && @@ -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; } diff --git a/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java b/experiment/src/org/labkey/experiment/api/ExpProtocolApplicationImpl.java index 56c1203b45f..9b2a3693d88 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())); }