From 3e3993ce41ea15f2d798885d0c892485c89cef24 Mon Sep 17 00:00:00 2001 From: Marco Fargetta Date: Thu, 27 Jun 2024 15:24:24 +0200 Subject: [PATCH] Remove VLV search from RequestNotifier --- .../com/netscape/cmscore/dbs/DBSSession.java | 8 ++++ .../cmscore/request/RequestNotifier.java | 42 ++++++------------- .../cmscore/request/RequestRepository.java | 2 + 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/base/server/src/main/java/com/netscape/cmscore/dbs/DBSSession.java b/base/server/src/main/java/com/netscape/cmscore/dbs/DBSSession.java index 5b4f90892e5..bf9d764b58d 100644 --- a/base/server/src/main/java/com/netscape/cmscore/dbs/DBSSession.java +++ b/base/server/src/main/java/com/netscape/cmscore/dbs/DBSSession.java @@ -324,7 +324,9 @@ public LDAPSearchResults persistentSearch( * @param attrs selected attributes * @return search results in virtual list * @exception EBaseException failed to search + * @deprecated As of release 11.6.0, replaced by {@link createPagedSearch} */ + @Deprecated(since = "11.6.0", forRemoval = true) public DBVirtualList createVirtualList( String base, String filter, @@ -343,7 +345,9 @@ public DBVirtualList createVirtualList( * @param pageSize page size in the virtual list * @return search results in virtual list * @exception EBaseException failed to search + * @deprecated As of release 11.6.0, replaced by {@link createPagedSearch} */ + @Deprecated(since = "11.6.0", forRemoval = true) public DBVirtualList createVirtualList( String base, String filter, @@ -364,7 +368,9 @@ public DBVirtualList createVirtualList( * @param pageSize page size in the virtual list * @return search results in virtual list * @exception EBaseException failed to search + * @deprecated As of release 11.6.0, replaced by {@link createPagedSearch} */ + @Deprecated(since = "11.6.0", forRemoval = true) public DBVirtualList createVirtualList( String base, String filter, @@ -386,7 +392,9 @@ public DBVirtualList createVirtualList( * @param pageSize page size in the virtual list * @return search results in virtual list * @exception EBaseException failed to search + * @deprecated As of release 11.6.0, replaced by {@link createPagedSearch} */ + @Deprecated(since = "11.6.0", forRemoval = true) public DBVirtualList createVirtualList( String base, String filter, diff --git a/base/server/src/main/java/com/netscape/cmscore/request/RequestNotifier.java b/base/server/src/main/java/com/netscape/cmscore/request/RequestNotifier.java index ddd490624d0..bf68ce73f93 100644 --- a/base/server/src/main/java/com/netscape/cmscore/request/RequestNotifier.java +++ b/base/server/src/main/java/com/netscape/cmscore/request/RequestNotifier.java @@ -20,13 +20,14 @@ import java.math.BigInteger; import java.util.Enumeration; import java.util.Hashtable; +import java.util.Iterator; import java.util.Vector; import com.netscape.certsrv.base.EBaseException; -import com.netscape.certsrv.request.IRequestVirtualList; import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.request.RequestListener; import com.netscape.cmscore.apps.CMSEngine; +import com.netscape.cmscore.dbs.RecordPagedList; /** * The RequestNotifier can be registered with a RequestQueue, @@ -227,32 +228,26 @@ public synchronized Request getRequest() { if (id != null && requestRepository != null) { logger.debug("getRequest request id=" + id); - - IRequestVirtualList list; + String filter = "(& (requestID >= " + new RequestId(id) + ")(requeststate=complete))"; + RecordPagedList list; try { list = requestRepository.getPagedRequestsByFilter( - new RequestId(id), - false, - "(requeststate=complete)", + filter, mMaxRequests, "requestId"); } catch (EBaseException e) { throw new RuntimeException(e); } + Iterator itReqRecs = list.iterator(); - int s = list.getSize() - list.getCurrentIndex(); - logger.debug("getRequest list size: " + s); - for (int i = 0; i < s; i++) { - r = null; + while (itReqRecs.hasNext() && mRequests.size() < mMaxRequests) { + RequestRecord reqRec = itReqRecs.next(); try { - r = list.getElementAt(i); + r = reqRec.toRequest(); } catch (Exception e) { // handled below } - if (r == null) { - continue; - } String requestType = r.getRequestType(); if (requestType == null) { continue; @@ -264,22 +259,11 @@ public synchronized Request getRequest() { requestType.equals(Request.UNREVOCATION_REQUEST))) { continue; } - if (i == 0 && id.equals(r.getRequestId().toString())) { - if (s == 1) { - break; - } - continue; - } - if (mRequests.size() < mMaxRequests) { - mRequests.addElement(r.getRequestId().toString()); - logger.debug("getRequest added " - + r.getRequestType() + " request " + r.getRequestId().toString() + - " to mRequests: " + mRequests.size() + " (" + mMaxRequests + ")"); - } else { - break; - } + mRequests.addElement(r.getRequestId().toString()); + logger.debug("getRequest added {} request {} to mRequests: {} ({})", + r.getRequestType(), r.getRequestId().toString(), mRequests.size(), mMaxRequests); } - logger.debug("getRequest done with adding requests to mRequests: " + mRequests.size()); + logger.debug("getRequest done with adding requests to mRequests: {}", mRequests.size()); } else { logger.warn("getRequest has no access to the request queue"); } diff --git a/base/server/src/main/java/com/netscape/cmscore/request/RequestRepository.java b/base/server/src/main/java/com/netscape/cmscore/request/RequestRepository.java index 8cbce125fa8..0773d60de31 100644 --- a/base/server/src/main/java/com/netscape/cmscore/request/RequestRepository.java +++ b/base/server/src/main/java/com/netscape/cmscore/request/RequestRepository.java @@ -516,7 +516,9 @@ public int getTotalRequestsByFilter( * @param pageSize page size * @param sortKey the attributes to sort by * @return request list + * @deprecated As of release 11.6.0 */ + @Deprecated(since = "11.6.0", forRemoval = true) public IRequestVirtualList getPagedRequestsByFilter( RequestId fromID, boolean jumpToEnd,