private void fillAndSendKeySetResponseChunks(LocalRegion region,
String regionName, KeySetOperationContext context,
ServerConnection servConn) throws IOException {
Set keySet = region.keys();
KeySetOperationContext keySetContext = context;
AuthorizeRequestPP postAuthzRequest = servConn.getPostAuthzRequest();
if (postAuthzRequest != null) {
keySetContext = postAuthzRequest.keySetAuthorize(regionName, keySet,
keySetContext);
keySet = keySetContext.getKeySet();
}
List keyList = new ArrayList(maximumChunkSize);
final boolean isTraceEnabled = logger.isTraceEnabled();
for (Iterator it = keySet.iterator(); it.hasNext();) {
Object entryKey = it.next();
keyList.add(entryKey);
if (isTraceEnabled) {
logger.trace("{}: fillAndSendKeySetResponseKey <{}>; list size was {}; region: {}", servConn.getName(), entryKey, keyList.size(), region.getFullPath());
}
if (keyList.size() == maximumChunkSize) {
sendKeySetResponseChunk(region, keyList, false, servConn);
keyList.clear();
}
}
sendKeySetResponseChunk(region, keyList, true, servConn);
}