} catch (Exception e) { tempSubscription.close(); throw e;
} catch (Throwable err) { if (err instanceof ThreadDeath) throw (ThreadDeath) err; del.setErrorReport(err);
  private void transientQuery (Element root, MessageAddress originator)      throws Exception  {    UnaryPredicate objectSeeker = ScriptSpec.makeUnaryPredicate(      XmlUtils.getChildElement(root, "unary_predicate"));    if (objectSeeker == null)      throw new Exception("Could not create unary predicate");    IncrementFormat formatter = ScriptSpec.makeIncrementFormat(      XmlUtils.getChildElement(root, "xml_encoder"));    if (formatter == null)      throw new Exception("Could not create formatter");    RemoteBlackboardSubscription tempSubscription =      new RemoteBlackboardSubscription(getBlackboardService(), objectSeeker, true);    UpdateDelta del = new UpdateDelta(      root.getAttribute("cluster_id"), root.getAttribute("query_id"), "");    // Use xml encoder to encode data from blackboard    tempSubscription.open();    try {      formatter.encode(del, tempSubscription);    } catch (Exception e) {      tempSubscription.close();      throw e;    }    tempSubscription.close();    // Send response message    sendMessage(originator, del.toXml());  }