private void fillAndSendKeySetResponseChunks(LocalRegion region, String regionName, KeySetOperationContext context, ServerConnection servConn) throws IOException { // Get the key set Set keySet = region.keys(); KeySetOperationContext keySetContext = context; // Post-operation filtering 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) { // Send the chunk and clear the list sendKeySetResponseChunk(region, keyList, false, servConn); keyList.clear(); } } // Send the last chunk even if the list is of zero size. sendKeySetResponseChunk(region, keyList, true, servConn); }
logger.warn(LocalizedMessage.create(LocalizedStrings.KeySet_0_THE_INPUT_REGION_NAME_FOR_THE_KEY_SET_REQUEST_IS_NULL, servConn.getName())); writeKeySetErrorResponse(msg, MessageType.KEY_SET_DATA_ERROR, message, servConn); servConn.setAsTrue(RESPONDED); if (region == null) { String reason = LocalizedStrings.KeySet__0_WAS_NOT_FOUND_DURING_KEY_SET_REQUEST.toLocalizedString(regionName); writeRegionDestroyedEx(msg, regionName, reason, servConn); servConn.setAsTrue(RESPONDED); writeChunkedException(msg, ex, false, servConn); servConn.setAsTrue(RESPONDED); return; fillAndSendKeySetResponseChunks(region, regionName, keySetContext, servConn); servConn.setAsTrue(RESPONDED); checkForInterrupt(servConn, e); writeChunkedException(msg, e, false, servConn, servConn .getChunkedResponseMessage()); servConn.setAsTrue(RESPONDED);
gfe57Commands.put(MessageType.REGISTER_INTEREST_LIST,RegisterInterestList.getCommand()); gfe57Commands.put(MessageType.UNREGISTER_INTEREST_LIST,UnregisterInterestList.getCommand()); gfe57Commands.put(MessageType.KEY_SET,KeySet.getCommand()); gfe57Commands.put(MessageType.CONTAINS_KEY,ContainsKey.getCommand()); gfe57Commands.put(MessageType.CREATE_REGION,CreateRegion.getCommand());
logger.warning(LocalizedStrings.KeySet_0_THE_INPUT_REGION_NAME_FOR_THE_KEY_SET_REQUEST_IS_NULL, servConn.getName()); writeKeySetErrorResponse(msg, MessageType.KEY_SET_DATA_ERROR, message, servConn); servConn.setAsTrue(RESPONDED); if (region == null) { String reason = LocalizedStrings.KeySet__0_WAS_NOT_FOUND_DURING_KEY_SET_REQUEST.toLocalizedString(regionName); writeRegionDestroyedEx(msg, regionName, reason, servConn); servConn.setAsTrue(RESPONDED); writeChunkedException(msg, ex, false, servConn); servConn.setAsTrue(RESPONDED); return; fillAndSendKeySetResponseChunks(region, regionName, keySetContext, servConn); servConn.setAsTrue(RESPONDED); checkForInterrupt(servConn, e); writeChunkedException(msg, e, false, servConn, servConn .getChunkedResponseMessage()); servConn.setAsTrue(RESPONDED);
gfe57Commands.put(MessageType.REGISTER_INTEREST_LIST,RegisterInterestList.getCommand()); gfe57Commands.put(MessageType.UNREGISTER_INTEREST_LIST,UnregisterInterestList.getCommand()); gfe57Commands.put(MessageType.KEY_SET,KeySet.getCommand()); gfe57Commands.put(MessageType.CONTAINS_KEY,ContainsKey.getCommand()); gfe57Commands.put(MessageType.CREATE_REGION,CreateRegion.getCommand());
sendKeySetResponseChunk(region, keyList, false, servConn); keyList.clear(); sendKeySetResponseChunk(region, keyList, true, servConn);