diff --git a/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java b/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java index 0d4c136c6..dde8e356e 100644 --- a/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java +++ b/Exareme-Docker/src/exareme/exareme-master/src/main/java/madgik/exareme/master/engine/iterations/handler/NIterativeAlgorithmResultEntity.java @@ -99,11 +99,15 @@ public void produceContent(ContentEncoder encoder, IOControl ioctrl) throws IOEx this.buffer.compact(); if (i < 1 && !buffering) { encoder.complete(); + closeQuery(); + close(); } } else { encoder.write(ByteBuffer.wrap( finalizeQueryStatus.getError().getBytes())); encoder.complete(); + closeQuery(); + close(); } } else { // Algorithm execution failed, notify the client. @@ -164,13 +168,12 @@ public void produceContent(ContentEncoder encoder, IOControl ioctrl) throws IOEx encoder.write(buffer); this.buffer.compact(); encoder.complete(); + closeQuery(); + close(); } } finally { if (iterativeAlgorithmState != null) iterativeAlgorithmState.releaseLock(); - - closeQuery(); - close(); } }