| | |
| | | * <p> |
| | | * Guarded by cnIndexDBLock |
| | | **/ |
| | | private int lastGeneratedChangeNumber = 0; |
| | | private long lastGeneratedChangeNumber = 0; |
| | | |
| | | /** Used for protecting {@link ChangeNumberIndexDB} related state. */ |
| | | private final Object cnIndexDBLock = new Object(); |
| | |
| | | * |
| | | * @return the first value. |
| | | */ |
| | | public int getFirstChangeNumber() |
| | | public long getFirstChangeNumber() |
| | | { |
| | | synchronized (cnIndexDBLock) |
| | | { |
| | |
| | | * |
| | | * @return the last value. |
| | | */ |
| | | public int getLastChangeNumber() |
| | | public long getLastChangeNumber() |
| | | { |
| | | synchronized (cnIndexDBLock) |
| | | { |
| | |
| | | * |
| | | * @return The generated change number |
| | | */ |
| | | public int getNewChangeNumber() |
| | | public long getNewChangeNumber() |
| | | { |
| | | synchronized (cnIndexDBLock) |
| | | { |
| | |
| | | * @throws DirectoryException |
| | | * When it happens. |
| | | */ |
| | | public int[] getECLChangeNumberLimits(CSN crossDomainEligibleCSN, |
| | | public long[] getECLChangeNumberLimits(CSN crossDomainEligibleCSN, |
| | | Set<String> excludedBaseDNs) throws DirectoryException |
| | | { |
| | | /* The content of the DraftCNdb depends on the SEARCH operations done before |
| | |
| | | * (this diff is done domain by domain) |
| | | */ |
| | | |
| | | int lastChangeNumber; |
| | | long lastChangeNumber; |
| | | boolean dbEmpty = false; |
| | | final ChangeNumberIndexDB cnIndexDB = getChangeNumberIndexDB(); |
| | | |
| | | int firstChangeNumber = cnIndexDB.getFirstChangeNumber(); |
| | | long firstChangeNumber = cnIndexDB.getFirstChangeNumber(); |
| | | Map<String, ServerState> domainsServerStateForLastCN = null; |
| | | CSN csnForLastCN = null; |
| | | String domainForLastCN = null; |
| | |
| | | firstChangeNumber += lastGeneratedChangeNumber; |
| | | lastChangeNumber += lastGeneratedChangeNumber; |
| | | } |
| | | return new int[]{firstChangeNumber, lastChangeNumber}; |
| | | return new long[] { firstChangeNumber, lastChangeNumber }; |
| | | } |
| | | |
| | | /** |