Skip to content

Commit 8ecffda

Browse files
[JAVA-301]: fix check to use isMaster for replSet name
1 parent 5263bbe commit 8ecffda

File tree

1 file changed

+23
-42
lines changed

1 file changed

+23
-42
lines changed

src/main/com/mongodb/ReplicaSetStatus.java

Lines changed: 23 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@
22

33
package com.mongodb;
44

5-
import java.io.*;
6-
import java.net.*;
7-
import java.util.*;
8-
import java.util.logging.*;
5+
import java.net.UnknownHostException;
6+
import java.util.ArrayList;
7+
import java.util.Collections;
8+
import java.util.HashSet;
9+
import java.util.Iterator;
10+
import java.util.LinkedList;
11+
import java.util.List;
12+
import java.util.Random;
13+
import java.util.Set;
14+
import java.util.logging.Level;
15+
import java.util.logging.Logger;
916

1017
/**
1118
* keeps replica set status
@@ -178,6 +185,18 @@ synchronized void update(Set<Node> seenNodes){
178185
maxBsonObjectSize = Bytes.MAX_OBJECT_SIZE;
179186
}
180187

188+
if (res.containsField("setName")) {
189+
String setName = res.get( "setName" ).toString();
190+
if ( _setName == null ){
191+
_setName = setName;
192+
_logger = Logger.getLogger( _rootLogger.getName() + "." + setName );
193+
}
194+
else if ( !_setName.equals( setName ) ){
195+
_logger.log( Level.SEVERE , "mis match set name old: " + _setName + " new: " + setName );
196+
return;
197+
}
198+
}
199+
181200
}
182201
catch ( MongoException e ){
183202
Throwable root = e;
@@ -193,44 +212,6 @@ synchronized void update(Set<Node> seenNodes){
193212

194213
if ( ! _isMaster )
195214
return;
196-
197-
try {
198-
DB db = _mongo.getDB("local");
199-
_port.checkAuth(db);
200-
DBObject config = _port.findOne( db, "system.replset" , new BasicDBObject() );
201-
if ( config == null ){
202-
// probably a replica pair
203-
// TODO: add this in when pairs are really gone
204-
//_logger.log( Level.SEVERE , "no replset config!" );
205-
} else if (config.get("$err") != null && UNAUTHENTICATED_ERROR_CODE == (Integer)config.get("code")) {
206-
_logger.log( Level.WARNING , "Replica Set updater cannot get results, call authenticate on 'local' or 'admin' db");
207-
} else {
208-
209-
String setName = config.get( "_id" ).toString();
210-
if ( _setName == null ){
211-
_setName = setName;
212-
_logger = Logger.getLogger( _rootLogger.getName() + "." + setName );
213-
}
214-
else if ( !_setName.equals( setName ) ){
215-
_logger.log( Level.SEVERE , "mis match set name old: " + _setName + " new: " + setName );
216-
return;
217-
}
218-
219-
// TODO: look at members
220-
}
221-
} catch ( MongoException e ){
222-
if ( _setName != null ){
223-
// this probably means the master is busy, so going to ignore
224-
}
225-
else {
226-
_logger.log( Level.SEVERE , "can't get initial config from node: " + _addr , e );
227-
}
228-
}
229-
catch ( Exception e ){
230-
_logger.log( Level.SEVERE , "unexpected error getting config from node: " + _addr , e );
231-
}
232-
233-
234215
}
235216

236217
public boolean master(){

0 commit comments

Comments
 (0)