opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java
@@ -22,7 +22,7 @@ * CDDL HEADER END * * * Copyright 2009 Sun Microsystems, Inc. * Copyright 2009-2010 Sun Microsystems, Inc. */ package org.opends.server.replication.server; import static org.opends.messages.ReplicationMessages.*; @@ -386,7 +386,8 @@ { // let's get the eligible part of the domain ServerState startSS = domain.getStartState(); ServerState endSS= domain.getEligibleState(crossDomainEligibleCN); ServerState endSS= domain.getEligibleState(crossDomainEligibleCN, true); ChangeNumber fcn = startSS.getMaxChangeNumber(cn.getServerId()); ChangeNumber lcn = endSS.getMaxChangeNumber(cn.getServerId()); opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -738,7 +738,7 @@ if (isPersistent == StartECLSessionMsg.PERSISTENT_CHANGES_ONLY) { newDomainCtxt.startState = rsd.getEligibleState(eligibleCN); newDomainCtxt.startState = rsd.getEligibleState(eligibleCN, true); } else { @@ -781,7 +781,7 @@ } // Set the stop state for the domain from the eligibleCN newDomainCtxt.stopState = rsd.getEligibleState(eligibleCN); newDomainCtxt.stopState = rsd.getEligibleState(eligibleCN, true); } newDomainCtxt.currentState = new ServerState(); opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -2072,7 +2072,7 @@ continue; result.update(rsd.getBaseDn(), rsd.getEligibleState( getEligibleCN())); getEligibleCN(),false)); } } return result; opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -3119,10 +3119,13 @@ * * The eligibleState is : s1;cn14 / s2;cn26 / s3;cn31 * * @param eligibleCN The provided eligibleCN. * @param eligibleCN The provided eligibleCN. * @param allowOlderThanPurgeDate When true, the returned state can be older * than the purge date of the domain. * @return The computed eligible server state. */ public ServerState getEligibleState(ChangeNumber eligibleCN) public ServerState getEligibleState(ChangeNumber eligibleCN, boolean allowOlderThanPurgeDate) { ServerState result = new ServerState(); @@ -3188,6 +3191,25 @@ } } } if (allowOlderThanPurgeDate == false) { boolean domainPurged = true; long latestDomainTrimDate = getLatestDomainTrimDate(); Iterator<Integer> it = result.iterator(); while (it.hasNext()) { int sid = it.next(); ChangeNumber cn = result.getMaxChangeNumber(sid); if ((cn.getTime()>0) && (cn.getTime()<latestDomainTrimDate)) result.update(new ChangeNumber(0,0,sid)); else domainPurged = false; } if (domainPurged == true) result.clear(); } if (debugEnabled()) TRACER.debugInfo("In " + this + " getEligibleState() result is " + result);