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; }