- try {
- Workspace workspace = session.getWorkspace();
- QueryManager qm = workspace.getQueryManager();
-
- String queryString = "//*[@uuid='" + uuid + "']";
- Query query = qm.createQuery(queryString, Query.XPATH);
- QueryResult queryResult = query.execute();
- NodeIterator nodeIterator = queryResult.getNodes();
- Node node;
- if (nodeIterator.hasNext())
- node = nodeIterator.nextNode();
- else
- throw new SlcException("Query returned no node.");
-
- if (nodeIterator.hasNext())
- throw new SlcException("Query returned more than one node.");
-
- return (SlcExecution) beanNodeMapper.nodeToBean(node);
- } catch (Exception e) {
- throw new SlcException("Cannot load SLC execution " + uuid, e);
- }
+ // TODO: optimize query
+ String queryString = "//process[@uuid='" + uuid + "']";
+ Query query = createQuery(queryString, Query.XPATH);
+ Node node = JcrUtils.querySingleNode(query);
+ if (node == null)
+ return null;
+ return (SlcExecution) nodeMapper.load(node);