Skip to content

Commit

Permalink
feat(jans-auth-server): mark indexes which we are about to re-use as …
Browse files Browse the repository at this point in the history
…VALID

#8562
Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>
  • Loading branch information
yuriyz committed Jun 28, 2024
1 parent 2148d90 commit c173c8d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@

import io.jans.as.model.config.StaticConfiguration;
import io.jans.as.model.configuration.AppConfiguration;
import io.jans.as.server.service.token.StatusListIndexService;
import io.jans.model.token.StatusIndexPool;
import io.jans.model.tokenstatus.TokenStatus;
import io.jans.orm.PersistenceEntryManager;
import io.jans.orm.exception.EntryPersistenceException;
import io.jans.orm.model.PagedResult;
import io.jans.orm.model.SortOrder;
import io.jans.orm.search.filter.Filter;
import io.jans.service.cdi.util.CdiUtil;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
Expand Down Expand Up @@ -213,6 +216,10 @@ public StatusIndexPool allocate(int nodeId) {
// If lock is ours reset entry and return it
if (LOCK_KEY.equals(lockedPool.getLockKey()) && lockedPool.getNodeId().equals(nodeId)) {
log.debug("Re-using existing status index pool {}, node {}, LOCK_KEY {}", lockedPool.getId(), nodeId, LOCK_KEY);

// mark all indexes which we are re-using as VALID
StatusListIndexService indexService = CdiUtil.bean(StatusListIndexService.class);
indexService.updateStatusAtIndexes(lockedPool.enumerateAllIndexes(), TokenStatus.VALID);
return lockedPool;
}
} catch (EntryPersistenceException ex) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import io.jans.orm.model.base.BaseEntry;
import jakarta.persistence.Transient;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

/**
Expand Down Expand Up @@ -95,6 +97,14 @@ public void setLockKey(String lockKey) {
this.lockKey = lockKey;
}

public List<Integer> enumerateAllIndexes() {
List<Integer> indexes = new ArrayList<>();
for (int i = getStartIndex(); i <= getEndIndex(); i++ ) {
indexes.add(i);
}
return indexes;
}

public Integer getStartIndex() {
return startIndex;
}
Expand Down

0 comments on commit c173c8d

Please sign in to comment.