} catch (ResourceNotFoundException e) {
- throw new ResourceNotFoundException(e);
+ throw new ResourceNotFoundException(id, e);
} catch (ValidationException e) {
} catch (ResourceNotFoundException e) {
- throw new ResourceNotFoundException(e);
+ throw new ResourceNotFoundException(id, e);
} catch (ServiceException e) {
if( relation == null) throw new IllegalArgumentException("relation can not be null");
try {
-
int single = processor.getSingleObject(this, subject, relation);
- if(single == 0) throw new NoSingleResultException("subject=" + subject + " relation="+relation);
+ if (single == 0) {
+ if (EMPTY_RESOURCE_CHECK) {
+ if (!hasStatement(subject)) {
+ throw new EmptyResourceException("Resource " + debugString(subject));
+ }
+ }
+ throw new NoSingleResultException("No single object for subject " + debugString(subject)
+ + " and relation " + debugString(relation), single);
+ }
return processor.querySupport.getResource(single);
-
} catch (NoSingleResultException e) {
-
- if(EMPTY_RESOURCE_CHECK) {
- if(!hasStatement(subject)) throw new EmptyResourceException("Resource " + debugString(subject));
- }
-
- throw new NoSingleResultException("No single object for subject "
- + debugString(subject) + " and relation "
- + debugString(relation), e);
-
+ throw e;
} catch (DatabaseException e) {
-
throw new ServiceException(e);
-
}
-
}
@Override
- final public Statement getSingleStatement(final Resource subject,
- final Resource relation) throws NoSingleResultException,
- ManyObjectsForFunctionalRelationException, ServiceException {
-
+ final public Statement getSingleStatement(final Resource subject, final Resource relation) throws NoSingleResultException, ManyObjectsForFunctionalRelationException, ServiceException {
assert (subject != null);
assert (relation != null);
-
try {
-
Collection<Statement> statements = getStatements(subject, relation);
- if(statements.size() == 1) return statements.iterator().next();
- else throw new NoSingleResultException("");
-
- } catch (NoSingleResultException e) {
-
- if(EMPTY_RESOURCE_CHECK) {
- if(!hasStatement(subject)) throw new EmptyResourceException("Resource " + debugString(subject));
- }
-
- throw new NoSingleResultException("No single statement for subject "
- + debugString(subject) + " and relation "
- + debugString(relation), e);
-
- } catch (DatabaseException e) {
-
- throw new ServiceException(e);
-
- }
-
+ if (statements.size() == 1) {
+ return statements.iterator().next();
+ } else {
+ if (EMPTY_RESOURCE_CHECK)
+ if (!hasStatement(subject))
+ throw new EmptyResourceException("Resource " + debugString(subject));
+ throw new NoSingleResultException("No single statement for subject " + debugString(subject)
+ + " and relation " + debugString(relation), statements.size());
+ }
+ } catch (ServiceException e) {
+ throw new ServiceException(e);
+ }
}
@Override
- final public Resource getSingleType(final Resource subject) throws NoSingleResultException,
- ServiceException {
-
+ final public Resource getSingleType(final Resource subject) throws NoSingleResultException, ServiceException {
assert (subject != null);
-
try {
-
ArrayList<Resource> principalTypes = (ArrayList<Resource>)getPrincipalTypes(subject);
- if(principalTypes.size() == 1) return principalTypes.get(0);
- else throw new NoSingleResultException("");
-
- } catch (NoSingleResultException e) {
-
- throw new NoSingleResultException(e);
-
+ if (principalTypes.size() == 1) {
+ return principalTypes.get(0);
+ } else {
+ throw new NoSingleResultException("No single type for subject " + debugString(subject), principalTypes.size());
+ }
} catch (ServiceException e) {
-
throw new ServiceException(e);
-
}
-
}
@Override
assert (baseType != null);
try {
-
return syncRequest(new SingleType(subject, baseType));
-
- } catch (NoSingleResultException e) {
-
- throw new NoSingleResultException(new NoSingleResultException("subject=" + subject + ", baseType=" + baseType, e));
-
- } catch (ServiceException e) {
-
- throw new ServiceException(e);
-
} catch (DatabaseException e) {
-
- throw new ServiceException(INTERNAL_ERROR_STRING, e);
-
+ throw new NoSingleResultException("subject=" + subject + ", baseType=" + baseType, 0, e);
}
-
}
@Override
assert (relation != null);
try {
-
Resource object = getSingleObject(subject, relation);
return getValue(object);
-
} catch (NoSingleResultException e) {
-
- throw new NoSingleResultException(e);
-
+ throw new NoSingleResultException("No single value found for subject " + debugString(subject) + " and relation " + debugString(relation), e.getResultCount(), e);
} catch (DoesNotContainValueException e) {
-
try {
Layer0 L0 = processor.getL0(this);
Resource object = getPossibleObject(subject, relation);
if(isInstanceOf(object, L0.Literal)) {
throw new DoesNotContainValueException(e);
} else {
- throw new InvalidLiteralException("The object " + object + " is not an instance of L0.Literal (use getRelatedValue2 instead)");
+ throw new InvalidLiteralException("The object " + object + " is not an instance of L0.Literal (use getRelatedValue2 instead)", e);
}
} else {
- throw new DoesNotContainValueException("The object " + object + " is not an instance of L0.Value");
+ throw new DoesNotContainValueException("The object " + object + " is not an instance of L0.Value", e);
}
} catch (DoesNotContainValueException e2) {
throw e2;
} catch (DatabaseException e2) {
throw new InternalException("The client failed to analyse the cause of the following exception", e);
}
-
} catch (ServiceException e) {
-
throw new ServiceException(e);
-
- }
-
+ }
}
@Override
assert (relation != null);
try {
-
Resource object = getSingleObject(subject, relation);
return getVariantValue(object);
-
} catch (NoSingleResultException e) {
-
- throw new NoSingleResultException(e);
-
+ throw new NoSingleResultException("No single object for subject " + debugString(subject) + " and relation " + debugString(relation), e.getResultCount(), e);
} catch (DoesNotContainValueException e) {
-
try {
Layer0 L0 = processor.getL0(this);
Resource object = getPossibleObject(subject, relation);
if(isInstanceOf(object, L0.Literal)) {
throw new DoesNotContainValueException(e);
} else {
- throw new InvalidLiteralException("The object " + object + " is not an instance of L0.Literal (use getRelatedValue2 instead)");
+ throw new InvalidLiteralException("The object " + object + " is not an instance of L0.Literal (use getRelatedValue2 instead)", e);
}
} else {
- throw new DoesNotContainValueException("The object " + object + " is not an instance of L0.Value");
+ throw new DoesNotContainValueException("The object " + object + " is not an instance of L0.Value", e);
}
} catch (DoesNotContainValueException e2) {
throw e2;
} catch (DatabaseException e2) {
throw new InternalException("The client failed to analyse the cause of the following exception", e);
}
-
} catch (ServiceException e) {
-
throw new ServiceException(e);
-
}
-
}
@Override
assert (relation != null);
try {
-
Resource object = getSingleObject(subject, relation);
return getValue(object, binding);
-
} catch (NoSingleResultException e) {
-
String message = "";
-
try {
-
String subjectName = NameUtils.getSafeName(this, subject, true);
String relationName = NameUtils.getSafeName(this, relation, true);
message = "Subject: " + subjectName + ", Relation: " + relationName;
-
} catch (DatabaseException e2) {
}
-
- throw new NoSingleResultException(message);
-
+ throw new NoSingleResultException(message, e.getResultCount(), e);
} catch (DoesNotContainValueException e) {
-
throw new DoesNotContainValueException(e);
-
} catch (ServiceException e) {
-
throw new ServiceException(e);
-
- } catch (DatabaseException e) {
-
- throw new ServiceException(INTERNAL_ERROR_STRING, e);
-
}
-
}
@Override
assert (request != null);
- if (parent != null) {
-
- try {
- return processor.queryRead(this, request, parent, null, null);
- } catch (Throwable e) {
- if(e instanceof DatabaseException) throw (DatabaseException)e;
- else throw new DatabaseException(e);
- }
-
- } else {
-
- try {
-
- return processor.tryQuery(this, request);
-
- } catch (Throwable throwable) {
-
- //Logger.defaultLogError("Internal read request failure", throwable);
+ return processor.query(this, request, parent, null, null);
- if (throwable instanceof DatabaseException)
- throw (DatabaseException) throwable;
- else
- throw new DatabaseException(
- "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
- throwable);
-
- }
-
- }
+// if (parent != null) {
+//
+// try {
+// } catch (Throwable e) {
+// if(e instanceof DatabaseException) throw (DatabaseException)e;
+// else throw new DatabaseException(e);
+// }
+//
+// } else {
+//
+// try {
+//
+// return processor.tryQuery(this, request);
+//
+// } catch (Throwable throwable) {
+//
+// //Logger.defaultLogError("Internal read request failure", throwable);
+//
+// if (throwable instanceof DatabaseException)
+// throw (DatabaseException) throwable;
+// else
+// throw new DatabaseException(
+// "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
+// throwable);
+//
+// }
+//
+// }
}
ListenerBase listener = procedure != null ? getListenerBase(procedure) : null;
- if (parent != null || listener != null) {
-
- try {
- return processor.queryRead(this, request, parent, procedure, listener);
- } catch (Throwable e) {
- if(e instanceof DatabaseException) throw (DatabaseException)e;
- else throw new DatabaseException(e);
- }
-
- } else {
-
- try {
-
- T t = processor.tryQuery(this, request);
- if(procedure != null)
- procedure.execute(this, t);
-
- return t;
-
- } catch (Throwable throwable) {
-
- Logger.defaultLogError("Internal read request failure", throwable);
-
- if(procedure != null)
- procedure.exception(this, throwable);
-
- if (throwable instanceof DatabaseException)
- throw (DatabaseException) throwable;
- else
- throw new DatabaseException(
- "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
- throwable);
-
- }
+ return processor.query(this, request, parent, procedure, listener);
+
- }
+// if (parent != null || listener != null) {
+//
+// try {
+// } catch (Throwable e) {
+// if(e instanceof DatabaseException) throw (DatabaseException)e;
+// else throw new DatabaseException(e);
+// }
+//
+// } else {
+//
+// try {
+//
+// T t = processor.tryQuery(this, request);
+// if(procedure != null)
+// procedure.execute(this, t);
+//
+// return t;
+//
+// } catch (Throwable throwable) {
+//
+// Logger.defaultLogError("Internal read request failure", throwable);
+//
+// if(procedure != null)
+// procedure.exception(this, throwable);
+//
+// if (throwable instanceof DatabaseException)
+// throw (DatabaseException) throwable;
+// else
+// throw new DatabaseException(
+// "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
+// throwable);
+//
+// }
+//
+// }
}
assert (request != null);
- // System.out.println("syncRequest " + request + " syncParent=" +
- // syncParent);
-
ListenerBase listener = getListenerBase(procedure);
- if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
-
-// Object syncParent = request;
-
-// final ReadGraphImpl newGraph = newSync();
-
- final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
- procedure, request);
-
- processor.query(this, request, parent, wrapper, listener);
-
-// newGraph.waitAsync(syncParent);
-
- Throwable e = wrapper.getException();
- if (e != null) {
- // The request was async - produce meaningful stack trace by
- // wrapping
- if (e instanceof DatabaseException)
- throw (DatabaseException) e;
- else
- throw new DatabaseException(e);
- }
-
- return wrapper.getResult();
-
- } else {
-
- // System.out.println("direct call " + request );
-
- // Do not set the sync state.parent for external threads
-// Object syncParent = request;
-
-// final ReadGraphImpl newGraph = newSync();
-
- final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
- procedure, request);
-
- try {
-
- processor.tryQuery(this, request, wrapper);
-
- } catch (Throwable t) {
-
- wrapper.exception(this, t);
-
- }
-
- Throwable e = wrapper.getException();
- if (e != null) {
- // The request was async - produce meaningful stack trace by
- // wrapping
- if (e instanceof DatabaseException)
- throw (DatabaseException) e;
- else
- throw new DatabaseException(e);
- }
-
- return wrapper.getResult();
+ final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+ procedure, request);
+
+ processor.query(this, request, parent, wrapper, listener);
+
+ return wrapper.getResult();
- }
+// if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
+//
+//// Object syncParent = request;
+//
+//// final ReadGraphImpl newGraph = newSync();
+//
+//
+//// newGraph.waitAsync(syncParent);
+//
+// Throwable e = wrapper.getException();
+// if (e != null) {
+// // The request was async - produce meaningful stack trace by
+// // wrapping
+// if (e instanceof DatabaseException)
+// throw (DatabaseException) e;
+// else
+// throw new DatabaseException(e);
+// }
+//
+// return wrapper.getResult();
+//
+// } else {
+//
+// // System.out.println("direct call " + request );
+//
+// // Do not set the sync state.parent for external threads
+//// Object syncParent = request;
+//
+//// final ReadGraphImpl newGraph = newSync();
+//
+// final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+// procedure, request);
+//
+// try {
+//
+// processor.tryQuery(this, request, wrapper);
+//
+// } catch (Throwable t) {
+//
+// wrapper.exception(this, t);
+//
+// }
+//
+// Throwable e = wrapper.getException();
+// if (e != null) {
+// // The request was async - produce meaningful stack trace by
+// // wrapping
+// if (e instanceof DatabaseException)
+// throw (DatabaseException) e;
+// else
+// throw new DatabaseException(e);
+// }
+//
+// return wrapper.getResult();
+//
+// }
}
assert (request != null);
- // System.out.println("syncRequest " + request + " syncParent=" +
- // syncParent);
-
ListenerBase listener = getListenerBase(procedure);
- if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
-
-// final ReadGraphImpl newGraph = newSync();
-
- final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
- procedure, request);
-
- processor.query(this, request, parent, wrapper, listener);
+ final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+ procedure, request);
- } else {
-
- try {
-
-// final ReadGraphImpl newGraph = newSync();
- processor.tryQuery(this, request, procedure);
-// newGraph.waitAsync(null);
- waitAsyncProcedure(procedure);
+ processor.query(this, request, parent, wrapper, listener);
- } catch (Throwable t) {
- if(Development.DEVELOPMENT) {
- if(Development.<Boolean>getProperty(DevelopmentKeys.WRITEGRAPH_EXCEPTION_STACKTRACES, Bindings.BOOLEAN)) {
- t.printStackTrace();
- }
- }
- procedure.exception(this, t);
- waitAsyncProcedure(procedure);
- }
-
- }
+// if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
+//
+//
+// } else {
+//
+// try {
+//
+//// final ReadGraphImpl newGraph = newSync();
+// processor.tryQuery(this, request, procedure);
+//// newGraph.waitAsync(null);
+// waitAsyncProcedure(procedure);
+//
+// } catch (Throwable t) {
+// if(Development.DEVELOPMENT) {
+// if(Development.<Boolean>getProperty(DevelopmentKeys.WRITEGRAPH_EXCEPTION_STACKTRACES, Bindings.BOOLEAN)) {
+// t.printStackTrace();
+// }
+// }
+// procedure.exception(this, t);
+// waitAsyncProcedure(procedure);
+// }
+//
+// }
}
assert (request != null);
ListenerBase listener = getListenerBase(procedure);
-
+
final DataContainer<Throwable> exception = new DataContainer<Throwable>();
final DataContainer<T> result = new DataContainer<T>();
- if (parent != null || listener != null) {
+ processor.query(this, request, parent, new Procedure<T>() {
-// final ReadGraphImpl newGraph = newSync();
-
- processor.query(this, request, parent, new Procedure<T>() {
-
- @Override
- public void exception(Throwable throwable) {
- exception.set(throwable);
- procedure.exception(throwable);
- }
-
- @Override
- public void execute(T t) {
- result.set(t);
- procedure.execute(t);
- }
-
- }, listener);
-
-// newGraph.waitAsync(request);
-
- } else {
-
- try {
+ @Override
+ public void exception(Throwable throwable) {
+ exception.set(throwable);
+ procedure.exception(throwable);
+ }
- T t = processor.tryQuery(this, request);
+ @Override
+ public void execute(T t) {
result.set(t);
procedure.execute(t);
+ }
- } catch (Throwable t) {
-
- if (t instanceof DatabaseException) {
- exception.set((DatabaseException)t);
- procedure.exception(exception.get());
- } else {
- exception.set(new DatabaseException(
- "Unexpected exception in ReadGraph.syncRequest(Read)",
- t));
- procedure.exception(exception.get());
- }
+ }, listener);
+
- }
- }
+// if (parent != null || listener != null) {
+//
+//// final ReadGraphImpl newGraph = newSync();
+//
+//
+//// newGraph.waitAsync(request);
+//
+// } else {
+//
+// try {
+//
+// T t = processor.tryQuery(this, request);
+// result.set(t);
+// procedure.execute(t);
+//
+// } catch (Throwable t) {
+//
+// if (t instanceof DatabaseException) {
+// exception.set((DatabaseException)t);
+// procedure.exception(exception.get());
+// } else {
+// exception.set(new DatabaseException(
+// "Unexpected exception in ReadGraph.syncRequest(Read)",
+// t));
+// procedure.exception(exception.get());
+// }
+//
+// }
+//
+// }
Throwable t = exception.get();
if (t != null) {
if (parent != null || listener != null) {
try {
- processor.queryRead(this, request, parent, procedure,
- listener);
- } catch (Throwable e) {
+ processor.query(this, request, parent, procedure,listener);
+ } catch (DatabaseException e) {
+ Logger.defaultLogError(e);
// This throwable has already been transferred to procedure at this point - do nothing about it
- //Logger.defaultLogError("Internal error ", e);
+ //
}
} else {
if (parent != null || listener != null) {
- processor.query(this, request, parent, procedure, listener);
+ try {
+ processor.query(this, request, parent, procedure, listener);
+ } catch (DatabaseException e) {
+ Logger.defaultLogError(e);
+ }
} else {