final String[] parts = URIStringUtils.splitURI(id);
if (parts != null) {
- Integer parentId = QueryCache.resultURIToResource(graph, parts[0], entry, null);
- ObjectResourceIdMap<String> map = QueryCache.resultChildMap(graph, parentId, entry, null);
- if(map == null) {
- procedure.execute(graph, 0);
- if(entry != null) entry.addOrSet(graph, graph.processor, 0);
- } else {
- int result = map.getId(URIStringUtils.unescape(parts[1]));
- if(entry != null) entry.addOrSet(graph, graph.processor, result);
- procedure.execute(graph, result);
- }
+ //Integer parentId = QueryCache.resultURIToResource(graph, parts[0], entry, null);
+ QueryCache.runnerURIToResource(graph, parts[0], entry, null, new InternalProcedure<Integer>() {
+
+ @Override
+ public void execute(ReadGraphImpl graph, Integer parentId) throws DatabaseException {
+
+ ObjectResourceIdMap<String> map = QueryCache.resultChildMap(graph, parentId, entry, null);
+ assert(map != null);
+// if(map == null) {
+// throw new DatabaseException("Internal Error, contact application support.");
+// if(entry != null) entry.except(e);
+// procedure.exception(graph, e);
+//// procedure.execute(graph, 0);
+//// if(entry != null) entry.addOrSet(graph, graph.processor, 0);
+// } else {
+ int result = map.getId(URIStringUtils.unescape(parts[1]));
+ if(result == 0) {
+ ResourceNotFoundException e = new ResourceNotFoundException("No resource for URI: " + id);
+ if(entry != null) entry.except(e);
+ procedure.exception(graph, e);
+ } else {
+ if(entry != null) entry.addOrSet(graph, graph.processor, result);
+ procedure.execute(graph, result);
+ }
+// }
+
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void exception(ReadGraphImpl graph, Throwable throwable) throws DatabaseException {
+ if(entry != null) entry.except(throwable);
+ procedure.exception(graph, throwable);
+ }
+
+ });
+
+
} else {
ResourceNotFoundException e = new ResourceNotFoundException("No resource for URI: " + id);
assert(isReady());
- if(handleException(graph, procedure)) return (Throwable)statusOrException;
+ if(handleException(graph, procedure)) return (Throwable)getResult();
Integer result = (Integer)getResult();
procedure.execute(graph, result);