void updateRoles() {
final String METHOD = "updateRoles";
LOGGER.entering(CLASS_NAME, METHOD);
NotesView connectorCrawlDatabaseView = null;
NotesDocument connectorCrawlDatabaseDoc = null;
try {
connectorCrawlDatabaseView =
connectorDatabase.getView(NCCONST.VIEWDATABASES);
if (connectorCrawlDatabaseView == null) {
return;
}
connectorCrawlDatabaseView.refresh();
Set<String> replicaIds = new LinkedHashSet<String>();
for (connectorCrawlDatabaseDoc =
connectorCrawlDatabaseView.getFirstDocument();
connectorCrawlDatabaseDoc != null;
connectorCrawlDatabaseDoc = getNextDocument(
connectorCrawlDatabaseView, connectorCrawlDatabaseDoc)) {
NotesDatabase crawlDatabase = null;
String databaseName = null;
try {
databaseName = connectorCrawlDatabaseDoc.getItemValueString(
NCCONST.DITM_DBNAME);
String replicaId = connectorCrawlDatabaseDoc.getItemValueString(
NCCONST.DITM_REPLICAID);
LOGGER.logp(Level.FINE, CLASS_NAME, METHOD,
"Updating roles for database: " + databaseName);
replicaIds.add(replicaId);
// TODO: is there anything that would cause us to skip
// checking roles for this database? Or remove all
// role-related records for this database?
crawlDatabase = notesSession.getDatabase(null, null);
crawlDatabase.openByReplicaID(
connectorCrawlDatabaseDoc.getItemValueString(NCCONST.DITM_SERVER),
replicaId);
if (!crawlDatabase.isOpen()) {
LOGGER.logp(Level.FINE, CLASS_NAME, METHOD,
"Database could not be opened: " + databaseName);
continue;