diff --git a/cellbase-app/pom.xml b/cellbase-app/pom.xml
index 2fbecfa9c..8005eecf2 100644
--- a/cellbase-app/pom.xml
+++ b/cellbase-app/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
../pom.xml
diff --git a/cellbase-client/pom.xml b/cellbase-client/pom.xml
index 1763a644a..c0416167d 100644
--- a/cellbase-client/pom.xml
+++ b/cellbase-client/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
../pom.xml
diff --git a/cellbase-core/pom.xml b/cellbase-core/pom.xml
index f20aac251..66c31d086 100644
--- a/cellbase-core/pom.xml
+++ b/cellbase-core/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
../pom.xml
diff --git a/cellbase-lib/pom.xml b/cellbase-lib/pom.xml
index 10c17f0af..a4f8449f6 100644
--- a/cellbase-lib/pom.xml
+++ b/cellbase-lib/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
../pom.xml
diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java
index 9361f48d0..e5cd4d38c 100644
--- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java
+++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java
@@ -16,17 +16,19 @@
package org.opencb.cellbase.lib.impl.core;
+import com.mongodb.ReadPreference;
+import com.mongodb.WriteConcern;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.BsonDocument;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.codehaus.jackson.map.ObjectMapper;
+import org.opencb.cellbase.core.api.key.ApiKeyStats;
import org.opencb.cellbase.core.api.query.AbstractQuery;
import org.opencb.cellbase.core.api.query.ProjectionQueryOptions;
import org.opencb.cellbase.core.exception.CellBaseException;
import org.opencb.cellbase.core.result.CellBaseDataResult;
-import org.opencb.cellbase.core.api.key.ApiKeyStats;
import org.opencb.cellbase.lib.iterator.CellBaseIterator;
import org.opencb.commons.datastore.core.FacetField;
import org.opencb.commons.datastore.core.QueryOptions;
@@ -55,7 +57,7 @@ public MetaMongoDBAdaptor(MongoDataStore mongoDataStore) {
private void init() {
logger.debug("MetaMongoDBAdaptor: in 'constructor'");
mongoDBCollection = mongoDataStore.getCollection("metadata");
- apiKeyStatsMongoDBCollection = mongoDataStore.getCollection("apikey_stats");
+ apiKeyStatsMongoDBCollection = mongoDataStore.getCollection("apikey_stats", WriteConcern.ACKNOWLEDGED, ReadPreference.primary());
}
public CellBaseDataResult getAll() {
diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java
index efddbe716..a503ba704 100644
--- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java
+++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java
@@ -615,9 +615,9 @@ private List runAnnotationProcess(List normalizedVar
}
}
} catch (Exception e) {
- e.printStackTrace();
+ variantAnnotation.setDisplayConsequenceType(VariantAnnotationUtils.FUNCTION_UNCERTAIN_VARIANT);
+ variantAnnotation.setConsequenceTypes(Collections.emptyList());
logger.error("Something wrong happened when calculation consequence type for variant " + variant, e);
- throw e;
}
}
diff --git a/cellbase-server/pom.xml b/cellbase-server/pom.xml
index aaf34ea2d..9b4720e13 100644
--- a/cellbase-server/pom.xml
+++ b/cellbase-server/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
../pom.xml
diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java
index ed21eac32..fc961bb9a 100755
--- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java
+++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java
@@ -118,7 +118,9 @@ public GenericRestWSServer(@PathParam("version") String version, @PathParam("spe
this.assembly = assembly;
try {
- init();
+ if (!INITIALIZED.get()) {
+ init();
+ }
if (this.assembly == null) {
// Default assembly depends on the CellBaseConfiguration (so it has to be already initialized)
@@ -131,9 +133,9 @@ public GenericRestWSServer(@PathParam("version") String version, @PathParam("spe
}
}
- private void init() throws IOException, CellBaseException {
+ private synchronized void init() throws IOException, CellBaseException {
// we need to make sure we only init one single time
- if (INITIALIZED.compareAndSet(false, true)) {
+ if (!INITIALIZED.get()) {
SERVICE_START_DATE = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
WATCH = new StopWatch();
WATCH.start();
@@ -167,19 +169,21 @@ private void init() throws IOException, CellBaseException {
cellBaseManagerFactory = new CellBaseManagerFactory(cellBaseConfiguration);
logger.info("***************************************************");
+ // Get default API key (for anonymous queries)
+ if (apiKeyManager == null) {
+ apiKeyManager = new ApiKeyManager(cellBaseConfiguration.getSecretKey());
+ defaultApiKey = apiKeyManager.getDefaultApiKey();
+ logger.info("default API key {}", defaultApiKey);
+ }
+
// Initialize Monitor
monitor = new Monitor(cellBaseManagerFactory.getMetaManager());
+
+ INITIALIZED.set(true);
}
}
private void initQuery() throws CellBaseException {
- // Get default API key (for anonymous queries)
- if (apiKeyManager == null) {
- apiKeyManager = new ApiKeyManager(cellBaseConfiguration.getSecretKey());
- defaultApiKey = apiKeyManager.getDefaultApiKey();
- logger.info("default API key {}", defaultApiKey);
- }
-
startTime = System.currentTimeMillis();
query = new Query();
uriParams = convertMultiToMap(uriInfo.getQueryParameters());
@@ -191,12 +195,10 @@ private void initQuery() throws CellBaseException {
// Set default API key, if necessary
String apiKey = uriParams.getOrDefault(API_KEY_PARAM, null);
- logger.info("Before checking, API key {}", apiKey);
if (StringUtils.isEmpty(apiKey)) {
apiKey = defaultApiKey;
uriParams.put(API_KEY_PARAM, apiKey);
}
- logger.info("After checking, API key {}", uriParams.get(API_KEY_PARAM));
checkLimit();
@@ -281,7 +283,8 @@ private void checkVersion() throws CellBaseException {
}
private void checkApiKey() throws CellBaseException {
- if (!uriInfo.getPath().contains("health")) {
+ // Update the API key content only for non-meta endpoints
+ if (!uriInfo.getPath().contains("/meta/")) {
String apiKey = getApiKey();
ApiKeyJwtPayload payload = apiKeyManager.decode(apiKey);
@@ -422,7 +425,7 @@ protected Response createOkResponse(Object obj) {
// Update API key stats, if necessary
try {
- if (!uriInfo.getPath().contains("health")) {
+ if (!uriInfo.getPath().contains("/meta/")) {
String apiKey = getApiKey();
MetaManager metaManager = cellBaseManagerFactory.getMetaManager();
long bytes = (jsonResponse.getEntity() != null) ? jsonResponse.getEntity().toString().length() : 0;
diff --git a/pom.xml b/pom.xml
index 480934711..b916d25dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.opencb.cellbase
cellbase
- 5.8.1-SNAPSHOT
+ 5.8.2-SNAPSHOT
pom
CellBase project
@@ -24,7 +24,7 @@
${project.version}
4.12.1-SNAPSHOT
- 2.12.1-SNAPSHOT
+ 2.12.2-SNAPSHOT
0.1.0
2.11.4
1.9.13