Author: mreutegg
Date: Thu Sep 27 08:50:24 2018
New Revision: 1842078
URL: http://svn.apache.org/viewvc?rev=1842078&view=rev
Log:
OAK-7485: DocumentNodeStore doesn't work with shared Atlas MongoDB replica set
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatus.java
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatus.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatus.java?rev=1842078&r1=1842077&r2=1842078&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatus.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatus.java
Thu Sep 27 08:50:24 2018
@@ -22,6 +22,7 @@ import com.mongodb.BasicDBObject;
import com.mongodb.ClientSessionOptions;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientException;
+import com.mongodb.MongoCommandException;
import com.mongodb.MongoQueryException;
import com.mongodb.ReadConcern;
import com.mongodb.client.MongoCollection;
@@ -236,8 +237,18 @@ public class MongoStatus implements Serv
private BasicDBObject getServerStatus() {
if (serverStatus == null) {
- serverStatus = client.getDatabase(dbName).runCommand(
- new BasicDBObject("serverStatus", 1), BasicDBObject.class);
+ try {
+ serverStatus = client.getDatabase(dbName).runCommand(
+ new BasicDBObject("serverStatus", 1),
BasicDBObject.class);
+ } catch (MongoCommandException e) {
+ if (e.getErrorCode() == -1) {
+ // OAK-7485: workaround when running on
+ // MongoDB Atlas shared instances
+ serverStatus = new BasicDBObject();
+ } else {
+ throw e;
+ }
+ }
}
return serverStatus;
}