use of me.retrodaredevil.solarthing.database.exception.NotFoundSolarThingDatabaseException in project solarthing by wildmountainfarms.
the class SimpleQueryHandler method queryMeta.
public MetaDatabase queryMeta() {
final VersionedPacket<RootMetaPacket> metadata;
synchronized (this) {
final VersionedPacket<RootMetaPacket> currentCache = metadataCache;
final Long lastMetadataCacheNanos = this.lastMetadataCacheNanos;
if (lastMetadataCacheNanos != null && System.nanoTime() - lastMetadataCacheNanos < METADATA_CACHE_VALID.toNanos()) {
requireNonNull(currentCache);
metadata = currentCache;
} else {
UpdateToken updateToken = currentCache == null ? null : currentCache.getUpdateToken();
final VersionedPacket<RootMetaPacket> newMetadata;
try {
newMetadata = database.queryMetadata(updateToken);
} catch (NotFoundSolarThingDatabaseException e) {
// If we have not defined metadata, then we return an "empty" instance
return EmptyMetaDatabase.getInstance();
} catch (SolarThingDatabaseException e) {
throw new DatabaseException("Could not query meta", e);
}
this.lastMetadataCacheNanos = System.nanoTime();
if (newMetadata == null) {
requireNonNull(currentCache);
metadata = currentCache;
} else {
metadataCache = newMetadata;
metadata = newMetadata;
}
}
}
return new DefaultMetaDatabase(metadata.getPacket());
}
use of me.retrodaredevil.solarthing.database.exception.NotFoundSolarThingDatabaseException in project solarthing by wildmountainfarms.
the class CouchDbAlterDatabase method delete.
@Override
public void delete(String documentId, UpdateToken updateToken) throws SolarThingDatabaseException {
RevisionUpdateToken revisionUpdateToken = CouchDbSolarThingDatabase.checkUpdateToken(updateToken);
String revision = revisionUpdateToken.getRevision();
try {
database.deleteDocument(documentId, revision);
} catch (CouchDbUnauthorizedException e) {
throw new UnauthorizedSolarThingDatabaseException(e);
} catch (CouchDbUpdateConflictException e) {
throw new UpdateConflictSolarThingDatabaseException("Update conflict on delete. Must not be latest revision. documentId: " + documentId + " revision: " + revision, e);
} catch (CouchDbNotFoundException e) {
throw new NotFoundSolarThingDatabaseException("(Not found) Could not delete documentId: " + documentId + " revision: " + revision, e);
} catch (CouchDbException e) {
throw new SolarThingDatabaseException("Could not delete documentId: " + documentId + " revision: " + revision, e);
}
}
Aggregations