You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2021/01/28 01:05:44 UTC
[geode] 13/16: GEODE-6588: Static analyzer cleanup
This is an automated email from the ASF dual-hosted git repository.
jbarrett pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
commit cc1841a59dbb34c7a07ab9c685f7c8f05e169e5e
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Fri Jan 22 07:39:38 2021 -0800
GEODE-6588: Static analyzer cleanup
---
.../geode/internal/cache/PartitionedRegion.java | 2 +-
.../internal/cache/tier/sockets/BaseCommand.java | 145 +++++++--------------
.../internal/cache/tier/sockets/command/Get70.java | 109 +++++-----------
.../cache/tier/sockets/command/PutAll80.java | 77 ++++-------
.../cache/tier/sockets/command/RemoveAll.java | 54 +++-----
5 files changed, 127 insertions(+), 260 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 4cb63d3..cd89363 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -4534,7 +4534,7 @@ public class PartitionedRegion extends LocalRegion
/**
* Fetches entries from local and remote nodes and appends these to register-interest response.
*/
- public void fetchEntries(HashMap<Integer, HashSet> bucketKeys, VersionedObjectList values,
+ public void fetchEntries(HashMap<Integer, HashSet<Object>> bucketKeys, VersionedObjectList values,
ServerConnection servConn) throws IOException {
int retryAttempts = calcRetry();
RetryTimeKeeper retryTime = null;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
index d418616..8000d1e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.internal.cache.tier.sockets;
+import static org.apache.geode.util.internal.UncheckedUtils.uncheckedCast;
+
import java.io.EOFException;
import java.io.IOException;
import java.io.InterruptedIOException;
@@ -161,7 +163,7 @@ public abstract class BaseCommand implements Command {
SecurityService securityService) {
// Read the request and update the statistics
long start = DistributionStats.getStatTime();
- if (EntryLogger.isEnabled() && serverConnection != null) {
+ if (EntryLogger.isEnabled()) {
EntryLogger.setSource(serverConnection.getMembershipID(), "c2s");
}
boolean shouldMasquerade = shouldMasqueradeForTx(clientMessage);
@@ -227,7 +229,7 @@ public abstract class BaseCommand implements Command {
*/
public boolean recoverVersionTagForRetriedOperation(EntryEventImpl clientEvent) {
InternalRegion r = clientEvent.getRegion();
- VersionTag tag = r.findVersionTagForEvent(clientEvent.getEventId());
+ VersionTag<?> tag = r.findVersionTagForEvent(clientEvent.getEventId());
if (tag == null) {
if (r instanceof DistributedRegion || r instanceof PartitionedRegion) {
// TODO this could be optimized for partitioned regions by sending the key
@@ -254,8 +256,8 @@ public abstract class BaseCommand implements Command {
* The client event should have the event identifier from the client and the region affected by
* the operation.
*/
- protected VersionTag findVersionTagsForRetriedBulkOp(LocalRegion region, EventID eventID) {
- VersionTag tag = region.findVersionTagForClientBulkOp(eventID);
+ protected VersionTag<?> findVersionTagsForRetriedBulkOp(LocalRegion region, EventID eventID) {
+ VersionTag<?> tag = region.findVersionTagForClientBulkOp(eventID);
if (tag != null) {
if (logger.isDebugEnabled()) {
logger.debug("recovered version tag {} for replayed bulk operation {}", tag, eventID);
@@ -292,22 +294,6 @@ public abstract class BaseCommand implements Command {
}
}
- protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection serverConnection,
- PartitionedRegion pr, byte nwHop) throws IOException {
- Message replyMsg = serverConnection.getReplyMessage();
- serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null);
- replyMsg.setMessageType(MessageType.REPLY);
- replyMsg.setNumberOfParts(1);
- replyMsg.setTransactionId(origMsg.getTransactionId());
- replyMsg.addBytesPart(new byte[] {pr.getMetadataVersion(), nwHop});
- replyMsg.send(serverConnection);
- pr.getPrStats().incPRMetaDataSentCount();
- if (logger.isTraceEnabled()) {
- logger.trace("{}: rpl with REFRESH_METADATA tx: {}", serverConnection.getName(),
- origMsg.getTransactionId());
- }
- }
-
private static void handleEOFException(Message msg, ServerConnection serverConnection,
Exception eof) {
CachedRegionHelper crHelper = serverConnection.getCachedRegionHelper();
@@ -360,8 +346,8 @@ public abstract class BaseCommand implements Command {
int transId = msg != null ? msg.getTransactionId() : Integer.MIN_VALUE;
logger.warn(String.format(
"%s: Unexpected IOException during operation for region: %s key: %s messId: %s",
- new Object[] {serverConnection.getName(), serverConnection.getModRegion(),
- serverConnection.getModKey(), transId}),
+ serverConnection.getName(), serverConnection.getModRegion(),
+ serverConnection.getModKey(), transId),
e);
} else {
logger.warn(String.format("%s: Unexpected IOException: ",
@@ -383,8 +369,8 @@ public abstract class BaseCommand implements Command {
int transId = msg != null ? msg.getTransactionId() : Integer.MIN_VALUE;
logger.warn(String.format(
"%s: Unexpected ShutdownException during operation on region: %s key: %s messageId: %s",
- new Object[] {serverConnection.getName(), serverConnection.getModRegion(),
- serverConnection.getModKey(), transId}),
+ serverConnection.getName(), serverConnection.getModRegion(),
+ serverConnection.getModKey(), transId),
e);
} else {
logger.warn(String.format("%s: Unexpected ShutdownException: ",
@@ -421,8 +407,8 @@ public abstract class BaseCommand implements Command {
if (!wroteExceptionResponse) {
logger.warn(String.format(
"%s: Unexpected Exception during operation on region: %s key: %s messageId: %s",
- new Object[] {serverConnection.getName(), serverConnection.getModRegion(),
- serverConnection.getModKey(), transId}),
+ serverConnection.getName(), serverConnection.getModRegion(),
+ serverConnection.getModKey(), transId),
e);
} else {
if (logger.isDebugEnabled()) {
@@ -478,8 +464,8 @@ public abstract class BaseCommand implements Command {
int transId = msg != null ? msg.getTransactionId() : Integer.MIN_VALUE;
logger.warn(String.format(
"%s: Unexpected Exception during operation on region: %s key: %s messageId: %s",
- new Object[] {serverConnection.getName(), serverConnection.getModRegion(),
- serverConnection.getModKey(), transId}),
+ serverConnection.getName(), serverConnection.getModRegion(),
+ serverConnection.getModKey(), transId),
th);
} else {
logger.warn(String.format("%s: Unexpected Exception",
@@ -652,34 +638,6 @@ public abstract class BaseCommand implements Command {
origMsg.clearParts();
}
- protected static void writeResponseWithRefreshMetadata(Object data, Object callbackArg,
- Message origMsg, boolean isObject, ServerConnection serverConnection, PartitionedRegion pr,
- byte nwHop) throws IOException {
- Message responseMsg = serverConnection.getResponseMessage();
- responseMsg.setMessageType(MessageType.RESPONSE);
- responseMsg.setTransactionId(origMsg.getTransactionId());
-
- if (callbackArg == null) {
- responseMsg.setNumberOfParts(2);
- } else {
- responseMsg.setNumberOfParts(3);
- }
-
- if (data instanceof byte[]) {
- responseMsg.addRawPart((byte[]) data, isObject);
- } else {
- Assert.assertTrue(isObject, "isObject should be true when value is not a byte[]");
- responseMsg.addObjPart(data, false);
- }
- if (callbackArg != null) {
- responseMsg.addObjPart(callbackArg);
- }
- responseMsg.addBytesPart(new byte[] {pr.getMetadataVersion(), nwHop});
- serverConnection.getCache().getCancelCriterion().checkCancelInProgress(null);
- responseMsg.send(serverConnection);
- origMsg.clearParts();
- }
-
protected static void writeResponseWithFunctionAttribute(byte[] data, Message origMsg,
ServerConnection serverConnection) throws IOException {
Message responseMsg = serverConnection.getResponseMessage();
@@ -895,7 +853,7 @@ public abstract class BaseCommand implements Command {
ServerConnection servConn) throws IOException {
// Client is not interested.
if (policy.isNone()) {
- sendRegisterInterestResponseChunk(region, riKey, new ArrayList(), true, servConn);
+ sendRegisterInterestResponseChunk(region, riKey, new ArrayList<>(), true, servConn);
return;
}
if (policy.isKeysValues() && servConn.getClientVersion().isNotOlderThan(KnownVersion.GFE_80)) {
@@ -903,7 +861,7 @@ public abstract class BaseCommand implements Command {
return;
}
if (riKey instanceof List) {
- handleList(region, (List) riKey, policy, servConn);
+ handleList(region, (List<?>) riKey, policy, servConn);
return;
}
if (!(riKey instanceof String)) {
@@ -947,7 +905,7 @@ public abstract class BaseCommand implements Command {
private static void handleKeysValuesPolicy(LocalRegion region, Object riKey, int interestType,
boolean serializeValues, ServerConnection servConn) throws IOException {
if (riKey instanceof List) {
- handleKVList(region, (List) riKey, serializeValues, servConn);
+ handleKVList(region, (List<?>) riKey, serializeValues, servConn);
return;
}
if (!(riKey instanceof String)) {
@@ -990,7 +948,8 @@ public abstract class BaseCommand implements Command {
/**
* @param list is a List of entry keys
*/
- private static void sendRegisterInterestResponseChunk(Region region, Object riKey, List list,
+ private static void sendRegisterInterestResponseChunk(Region<?, ?> region, Object riKey,
+ List<?> list,
boolean lastChunk, ServerConnection servConn) throws IOException {
ChunkedMessage chunkedResponseMsg = servConn.getRegisterInterestResponseMessage();
chunkedResponseMsg.setNumberOfParts(1);
@@ -1025,14 +984,14 @@ public abstract class BaseCommand implements Command {
* @param keyList the list of keys
* @param policy the policy
*/
- private static void handleList(LocalRegion region, List keyList, InterestResultPolicy policy,
+ private static void handleList(LocalRegion region, List<?> keyList, InterestResultPolicy policy,
ServerConnection servConn) throws IOException {
if (region instanceof PartitionedRegion) {
// too bad java doesn't provide another way to do this...
handleListPR((PartitionedRegion) region, keyList, policy, servConn);
return;
}
- List newKeyList = new ArrayList(MAXIMUM_CHUNK_SIZE);
+ List<Object> newKeyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
// Handle list of keys
if (region != null) {
for (Object entryKey : keyList) {
@@ -1064,7 +1023,7 @@ public abstract class BaseCommand implements Command {
ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
// From Get70.getValueAndIsObject()
Object data = region.get(entryKey, null, true, true, true, id, versionHolder, true);
- VersionTag vt = versionHolder.getVersionTag();
+ VersionTag<?> vt = versionHolder.getVersionTag();
updateValues(values, entryKey, data, vt);
}
@@ -1083,7 +1042,7 @@ public abstract class BaseCommand implements Command {
*/
private static void handleSingleton(LocalRegion region, Object entryKey,
InterestResultPolicy policy, ServerConnection servConn) throws IOException {
- List keyList = new ArrayList(1);
+ List<Object> keyList = new ArrayList<>(1);
if (region != null) {
if (region.containsKey(entryKey)
|| sendTombstonesInRIResults(servConn, policy) && region.containsTombstone(entryKey)) {
@@ -1103,7 +1062,7 @@ public abstract class BaseCommand implements Command {
*/
private static void handleAllKeys(LocalRegion region, InterestResultPolicy policy,
ServerConnection servConn) throws IOException {
- List keyList = new ArrayList(MAXIMUM_CHUNK_SIZE);
+ List<Object> keyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
if (region != null) {
for (Object entryKey : region.keySet(sendTombstonesInRIResults(servConn, policy))) {
appendInterestResponseKey(region, "ALL_KEYS", entryKey, keyList, servConn);
@@ -1148,7 +1107,7 @@ public abstract class BaseCommand implements Command {
ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
Object data = region.get(key, null, true, true, true, id, versionHolder, true);
- VersionTag versionTag = versionHolder.getVersionTag();
+ VersionTag<?> versionTag = versionHolder.getVersionTag();
updateValues(values, key, data, versionTag);
if (values.size() == MAXIMUM_CHUNK_SIZE) {
@@ -1172,8 +1131,8 @@ public abstract class BaseCommand implements Command {
region.getConcurrencyChecksEnabled(), serializeValues);
if (keyInfo instanceof List) {
- HashMap<Integer, HashSet> bucketKeys = new HashMap<>();
- for (Object key : (List) keyInfo) {
+ HashMap<Integer, HashSet<Object>> bucketKeys = new HashMap<>();
+ for (Object key : (List<?>) keyInfo) {
int id = PartitionedRegionHelper.getHashKey(region, null, key, null, null);
if (bucketKeys.containsKey(id)) {
bucketKeys.get(id).add(key);
@@ -1199,7 +1158,7 @@ public abstract class BaseCommand implements Command {
* of copying it here?)
*/
private static void updateValues(VersionedObjectList values, Object key, Object value,
- VersionTag versionTag) {
+ VersionTag<?> versionTag) {
boolean isObject = true;
// If the value in the VM is a CachedDeserializable,
@@ -1233,7 +1192,7 @@ public abstract class BaseCommand implements Command {
}
public static void appendNewRegisterInterestResponseChunkFromLocal(LocalRegion region,
- VersionedObjectList values, Object riKeys, Set keySet, ServerConnection servConn)
+ VersionedObjectList values, Object riKeys, Set<?> keySet, ServerConnection servConn)
throws IOException {
ClientProxyMembershipID requestingClient = servConn == null ? null : servConn.getProxyID();
for (Object key : keySet) {
@@ -1254,11 +1213,12 @@ public abstract class BaseCommand implements Command {
}
public static void appendNewRegisterInterestResponseChunk(LocalRegion region,
- VersionedObjectList values, Object riKeys, Set<Map.Entry> set, ServerConnection servConn)
+ VersionedObjectList values, Object riKeys, Set<Map.Entry<?, ?>> set,
+ ServerConnection servConn)
throws IOException {
- for (Entry entry : set) {
+ for (Entry<?, ?> entry : set) {
if (entry instanceof Region.Entry) { // local entries
- VersionTag vt;
+ VersionTag<?> vt;
Object key;
Object value;
if (entry instanceof EntrySnapshot) {
@@ -1267,7 +1227,7 @@ public abstract class BaseCommand implements Command {
value = ((EntrySnapshot) entry).getRegionEntry().getValue(null);
updateValues(values, key, value, vt);
} else {
- VersionStamp vs = ((NonTXEntry) entry).getRegionEntry().getVersionStamp();
+ VersionStamp<?> vs = ((NonTXEntry) entry).getRegionEntry().getVersionStamp();
vt = vs == null ? null : vs.asVersionTag();
key = entry.getKey();
value = ((NonTXEntry) entry).getRegionEntry().getValueRetain(region, true);
@@ -1278,9 +1238,9 @@ public abstract class BaseCommand implements Command {
}
}
} else { // Map.Entry (remote entries)
- List list = (List) entry.getValue();
+ List<?> list = (List<?>) entry.getValue();
Object value = list.get(0);
- VersionTag tag = (VersionTag) list.get(1);
+ VersionTag<?> tag = (VersionTag<?>) list.get(1);
updateValues(values, entry.getKey(), value, tag);
}
if (values.size() == MAXIMUM_CHUNK_SIZE) {
@@ -1317,7 +1277,7 @@ public abstract class BaseCommand implements Command {
handleRegExPR((PartitionedRegion) region, regex, policy, servConn);
return;
}
- List keyList = new ArrayList(MAXIMUM_CHUNK_SIZE);
+ List<Object> keyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
// Handle the regex pattern
if (region != null) {
Pattern keyPattern = Pattern.compile(regex);
@@ -1344,14 +1304,10 @@ public abstract class BaseCommand implements Command {
*/
private static void handleRegExPR(final PartitionedRegion region, final String regex,
final InterestResultPolicy policy, final ServerConnection servConn) throws IOException {
- final List keyList = new ArrayList(MAXIMUM_CHUNK_SIZE);
+ final List<Object> keyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
region.getKeysWithRegEx(regex, sendTombstonesInRIResults(servConn, policy),
- new PartitionedRegion.SetCollector() {
- @Override
- public void receiveSet(Set theSet) throws IOException {
- appendInterestResponseKeys(region, regex, theSet, keyList, servConn);
- }
- });
+ theSet -> appendInterestResponseKeys(region, regex, uncheckedCast(theSet), keyList,
+ servConn));
// Send the last chunk (the only chunk for individual and list keys)
// always send it back, even if the list is of zero size.
sendRegisterInterestResponseChunk(region, regex, keyList, true, servConn);
@@ -1360,22 +1316,18 @@ public abstract class BaseCommand implements Command {
/**
* Process an interest request involving a list of keys
*/
- private static void handleListPR(final PartitionedRegion region, final List keyList,
+ private static void handleListPR(final PartitionedRegion region, final List<?> keyList,
final InterestResultPolicy policy, final ServerConnection servConn) throws IOException {
- final List newKeyList = new ArrayList(MAXIMUM_CHUNK_SIZE);
+ final List<Object> newKeyList = new ArrayList<>(MAXIMUM_CHUNK_SIZE);
region.getKeysWithList(keyList, sendTombstonesInRIResults(servConn, policy),
- new PartitionedRegion.SetCollector() {
- @Override
- public void receiveSet(Set theSet) throws IOException {
- appendInterestResponseKeys(region, keyList, theSet, newKeyList, servConn);
- }
- });
+ theSet -> appendInterestResponseKeys(region, keyList, uncheckedCast(theSet), newKeyList,
+ servConn));
// Send the last chunk (the only chunk for individual and list keys)
// always send it back, even if the list is of zero size.
sendRegisterInterestResponseChunk(region, keyList, newKeyList, true, servConn);
}
- private static void handleKVList(final LocalRegion region, final List keyList,
+ private static void handleKVList(final LocalRegion region, final List<?> keyList,
boolean serializeValues, final ServerConnection servConn) throws IOException {
if (region instanceof PartitionedRegion) {
@@ -1394,7 +1346,7 @@ public abstract class BaseCommand implements Command {
ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
Object data = region.get(key, null, true, true, true, id, versionHolder, true);
- VersionTag versionTag = versionHolder.getVersionTag();
+ VersionTag<?> versionTag = versionHolder.getVersionTag();
updateValues(values, key, data, versionTag);
if (values.size() == MAXIMUM_CHUNK_SIZE) {
@@ -1426,7 +1378,7 @@ public abstract class BaseCommand implements Command {
* @param list list to append to
*/
private static void appendInterestResponseKey(LocalRegion region, Object riKey, Object entryKey,
- List list, ServerConnection servConn) throws IOException {
+ List<Object> list, ServerConnection servConn) throws IOException {
list.add(entryKey);
if (logger.isDebugEnabled()) {
logger.debug("{}: appendInterestResponseKey <{}>; list size was {}; region: {}",
@@ -1440,7 +1392,8 @@ public abstract class BaseCommand implements Command {
}
private static void appendInterestResponseKeys(LocalRegion region, Object riKey,
- Collection entryKeys, List collector, ServerConnection servConn) throws IOException {
+ Collection<Object> entryKeys, List<Object> collector, ServerConnection servConn)
+ throws IOException {
for (final Object entryKey : entryKeys) {
appendInterestResponseKey(region, riKey, entryKey, collector, servConn);
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Get70.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Get70.java
index 895dd22..e538c93 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Get70.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Get70.java
@@ -29,7 +29,6 @@ import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.Token;
import org.apache.geode.internal.cache.VersionTagHolder;
-import org.apache.geode.internal.cache.tier.CachedRegionHelper;
import org.apache.geode.internal.cache.tier.Command;
import org.apache.geode.internal.cache.tier.MessageType;
import org.apache.geode.internal.cache.tier.sockets.BaseCommand;
@@ -62,27 +61,22 @@ public class Get70 extends BaseCommand {
public void cmdExecute(final Message clientMessage, final ServerConnection serverConnection,
final SecurityService securityService, long startparam) throws IOException {
long start = startparam;
- Part regionNamePart = null, keyPart = null, valuePart = null;
- String regionName = null;
- Object callbackArg = null, key = null;
- CachedRegionHelper crHelper = serverConnection.getCachedRegionHelper();
- CacheServerStats stats = serverConnection.getCacheServerStats();
- String errMessage = null;
+ final CacheServerStats stats = serverConnection.getCacheServerStats();
serverConnection.setAsTrue(REQUIRES_RESPONSE);
- // requiresResponse = true;
{
long oldStart = start;
start = DistributionStats.getStatTime();
stats.incReadGetRequestTime(start - oldStart);
}
// Retrieve the data from the message parts
- int parts = clientMessage.getNumberOfParts();
- regionNamePart = clientMessage.getPart(0);
- keyPart = clientMessage.getPart(1);
+ final int parts = clientMessage.getNumberOfParts();
+ final Part regionNamePart = clientMessage.getPart(0);
+ final Part keyPart = clientMessage.getPart(1);
// valuePart = null; (redundant assignment)
+ Object callbackArg = null;
if (parts > 2) {
- valuePart = clientMessage.getPart(2);
+ Part valuePart = clientMessage.getPart(2);
try {
callbackArg = valuePart.getObject();
} catch (Exception e) {
@@ -92,7 +86,8 @@ public class Get70 extends BaseCommand {
return;
}
}
- regionName = regionNamePart.getCachedString();
+ final String regionName = regionNamePart.getCachedString();
+ final Object key;
try {
key = keyPart.getStringOrObject();
} catch (Exception e) {
@@ -109,12 +104,13 @@ public class Get70 extends BaseCommand {
// Process the get request
if (key == null || regionName == null) {
+ final String errMessage;
if ((key == null) && (regionName == null)) {
errMessage =
"The input region name and key for the get request are null.";
} else if (key == null) {
errMessage = "The input key for the get request is null.";
- } else if (regionName == null) {
+ } else {
errMessage = "The input region name for the get request is null.";
}
logger.warn("{}: {}", serverConnection.getName(), errMessage);
@@ -123,7 +119,7 @@ public class Get70 extends BaseCommand {
return;
}
- Region region = serverConnection.getCache().getRegion(regionName);
+ final Region<?, ?> region = serverConnection.getCache().getRegion(regionName);
if (region == null) {
String reason = " was not found during get request";
writeRegionDestroyedEx(clientMessage, regionName, reason, serverConnection);
@@ -163,8 +159,8 @@ public class Get70 extends BaseCommand {
Object data = originalData;
try {
boolean isObject = entry.isObject;
- VersionTag versionTag = entry.versionTag;
- boolean keyNotPresent = entry.keyNotPresent;
+ final VersionTag<?> versionTag = entry.versionTag;
+ final boolean keyNotPresent = entry.keyNotPresent;
try {
AuthorizeRequestPP postAuthzRequest = serverConnection.getPostAuthzRequest();
@@ -234,7 +230,7 @@ public class Get70 extends BaseCommand {
* code needs to call getValueAndIsObject then this method can go away.
*/
@Retained
- protected Entry getEntry(Region region, Object key, Object callbackArg,
+ protected Entry getEntry(Region<?, ?> region, Object key, Object callbackArg,
ServerConnection servConn) {
return getEntryRetained(region, key, callbackArg, servConn);
}
@@ -243,7 +239,7 @@ public class Get70 extends BaseCommand {
// returning as the result to avoid creating the array repeatedly
// for large number of entries like in getAll. Third element added in
// 7.0 for retrieving version information
- public Entry getValueAndIsObject(Region region, Object key, Object callbackArg,
+ public Entry getValueAndIsObject(Region<?, ?> region, Object key, Object callbackArg,
ServerConnection servConn) {
// Region.Entry entry;
@@ -251,40 +247,12 @@ public class Get70 extends BaseCommand {
if (servConn != null) {
servConn.setModificationInfo(true, regionName, key);
}
- VersionTag versionTag = null;
- // LocalRegion lregion = (LocalRegion)region;
-
- // entry = lregion.getEntry(key, true);
- boolean isObject = true;
- Object data = null;
-
-
- // if (entry != null && region.getAttributes().getConcurrencyChecksEnabled()) {
- // RegionEntry re;
- // if (entry instanceof NonTXEntry) {
- // re = ((NonTXEntry)entry).getRegionEntry();
- // } else if (entry instanceof EntrySnapshot) {
- // re = ((EntrySnapshot)entry).getRegionEntry();
- // } else if (entry instanceof TXEntry) {
- // re = null; // versioning not supported in tx yet
- // data = entry.getValue(); // can I get a serialized form??
- // } else {
- // re = (RegionEntry)entry;
- // }
- // if (re != null) {
- // data = re.getValueInVM();
- // VersionStamp stamp = re.getVersionStamp();
- // if (stamp != null) {
- // versionHolder.setVersionTag(stamp.asVersionTag());
- // }
- // }
- // } else {
- ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
- VersionTagHolder versionHolder = new VersionTagHolder();
- data = ((LocalRegion) region).get(key, callbackArg, true, true, true, id, versionHolder, true);
- // }
- versionTag = versionHolder.getVersionTag();
+ final ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
+ final VersionTagHolder versionHolder = new VersionTagHolder();
+ Object data =
+ ((LocalRegion) region).get(key, callbackArg, true, true, true, id, versionHolder, true);
+ final VersionTag<?> versionTag = versionHolder.getVersionTag();
// If the value in the VM is a CachedDeserializable,
// get its value. If it is Token.REMOVED, Token.DESTROYED,
@@ -292,6 +260,7 @@ public class Get70 extends BaseCommand {
// set it to null. If it is NOT_AVAILABLE, get the value from
// disk. If it is already a byte[], set isObject to false.
boolean wasInvalid = false;
+ boolean isObject = true;
if (data instanceof CachedDeserializable) {
CachedDeserializable cd = (CachedDeserializable) data;
if (!cd.isSerialized()) {
@@ -318,7 +287,7 @@ public class Get70 extends BaseCommand {
* Same as getValueAndIsObject but the returned value can be a retained off-heap reference.
*/
@Retained
- public Entry getEntryRetained(Region region, Object key, Object callbackArg,
+ public Entry getEntryRetained(Region<?, ?> region, Object key, Object callbackArg,
ServerConnection servConn) {
// Region.Entry entry;
@@ -326,26 +295,21 @@ public class Get70 extends BaseCommand {
if (servConn != null) {
servConn.setModificationInfo(true, regionName, key);
}
- VersionTag versionTag = null;
- // LocalRegion lregion = (LocalRegion)region;
-
- // entry = lregion.getEntry(key, true);
-
- boolean isObject = true;
- @Retained
- Object data = null;
ClientProxyMembershipID id = servConn == null ? null : servConn.getProxyID();
VersionTagHolder versionHolder = new VersionTagHolder();
- data =
+
+ @Retained
+ Object data =
((LocalRegion) region).getRetained(key, callbackArg, true, true, id, versionHolder, true);
- versionTag = versionHolder.getVersionTag();
+ final VersionTag<?> versionTag = versionHolder.getVersionTag();
// If it is Token.REMOVED, Token.DESTROYED,
// Token.INVALID, or Token.LOCAL_INVALID
// set it to null. If it is NOT_AVAILABLE, get the value from
// disk. If it is already a byte[], set isObject to false.
boolean wasInvalid = false;
+ boolean isObject = true;
if (data == Token.REMOVED_PHASE1 || data == Token.REMOVED_PHASE2 || data == Token.DESTROYED) {
data = null;
} else if (data == Token.INVALID || data == Token.LOCAL_INVALID) {
@@ -369,9 +333,9 @@ public class Get70 extends BaseCommand {
public final Object value;
public final boolean isObject;
public final boolean keyNotPresent;
- public final VersionTag versionTag;
+ public final VersionTag<?> versionTag;
- public Entry(Object value, boolean isObject, boolean keyNotPresent, VersionTag versionTag) {
+ public Entry(Object value, boolean isObject, boolean keyNotPresent, VersionTag<?> versionTag) {
this.value = value;
this.isObject = isObject;
this.keyNotPresent = keyNotPresent;
@@ -390,14 +354,8 @@ public class Get70 extends BaseCommand {
throw new UnsupportedOperationException();
}
- @Override
- protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection serverConnection,
- PartitionedRegion pr, byte nwHop) throws IOException {
- throw new UnsupportedOperationException();
- }
-
private void writeResponse(@Unretained Object data, Object callbackArg, Message origMsg,
- boolean isObject, VersionTag versionTag, boolean keyNotPresent, ServerConnection servConn)
+ boolean isObject, VersionTag<?> versionTag, boolean keyNotPresent, ServerConnection servConn)
throws IOException {
Message responseMsg = servConn.getResponseMessage();
responseMsg.setMessageType(MessageType.RESPONSE);
@@ -439,14 +397,9 @@ public class Get70 extends BaseCommand {
origMsg.clearParts();
}
- protected static void writeResponse(Object data, Object callbackArg, Message origMsg,
- boolean isObject, ServerConnection servConn) throws IOException {
- throw new UnsupportedOperationException();
- }
-
private void writeResponseWithRefreshMetadata(@Unretained Object data, Object callbackArg,
Message origMsg, boolean isObject, ServerConnection servConn, PartitionedRegion pr,
- byte nwHop, VersionTag versionTag, boolean keyNotPresent) throws IOException {
+ byte nwHop, VersionTag<?> versionTag, boolean keyNotPresent) throws IOException {
Message responseMsg = servConn.getResponseMessage();
responseMsg.setMessageType(MessageType.RESPONSE);
responseMsg.setTransactionId(origMsg.getTransactionId());
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
index 247c95a..e6d0a4c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/PutAll80.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.internal.cache.tier.sockets.command;
+import static org.apache.geode.util.internal.UncheckedUtils.uncheckedCast;
+
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.LinkedHashMap;
@@ -78,13 +80,6 @@ public class PutAll80 extends BaseCommand {
public void cmdExecute(final Message clientMessage, final ServerConnection serverConnection,
final SecurityService securityService, long startp) throws IOException, InterruptedException {
long start = startp; // copy this since we need to modify it
- Part regionNamePart = null, numberOfKeysPart = null, keyPart = null, valuePart = null;
- String regionName = null;
- int numberOfKeys = 0;
- Object key = null;
- Part eventPart = null;
- boolean replyWithMetaData = false;
- VersionedObjectList response = null;
StringBuilder errMessage = new StringBuilder();
CachedRegionHelper crHelper = serverConnection.getCachedRegionHelper();
@@ -99,10 +94,13 @@ public class PutAll80 extends BaseCommand {
stats.incReadPutAllRequestTime(start - oldStart);
}
+ final String regionName;
+ boolean replyWithMetaData = false;
+ VersionedObjectList response;
try {
// Retrieve the data from the message parts
// part 0: region name
- regionNamePart = clientMessage.getPart(0);
+ Part regionNamePart = clientMessage.getPart(0);
regionName = regionNamePart.getCachedString();
if (regionName == null) {
@@ -127,7 +125,7 @@ public class PutAll80 extends BaseCommand {
final int BASE_PART_COUNT = getBasePartCount();
// part 1: eventID
- eventPart = clientMessage.getPart(1);
+ Part eventPart = clientMessage.getPart(1);
ByteBuffer eventIdPartsBuffer = ByteBuffer.wrap(eventPart.getSerializedForm());
long threadId = EventID.readEventIdPartsFromOptmizedByteArray(eventIdPartsBuffer);
long sequenceId = EventID.readEventIdPartsFromOptmizedByteArray(eventIdPartsBuffer);
@@ -138,7 +136,7 @@ public class PutAll80 extends BaseCommand {
// part 2: invoke callbacks (used by import)
Part callbacksPart = clientMessage.getPart(2);
- boolean skipCallbacks = callbacksPart.getInt() == 1 ? true : false;
+ boolean skipCallbacks = callbacksPart.getInt() == 1;
// part 3: flags
int flags = clientMessage.getPart(3).getInt();
@@ -146,26 +144,27 @@ public class PutAll80 extends BaseCommand {
boolean clientHasCCEnabled = (flags & PutAllOp.FLAG_CONCURRENCY_CHECKS) != 0;
// part 4: number of keys
- numberOfKeysPart = clientMessage.getPart(4);
- numberOfKeys = numberOfKeysPart.getInt();
+ Part numberOfKeysPart = clientMessage.getPart(4);
+ int numberOfKeys = numberOfKeysPart.getInt();
Object callbackArg = getOptionalCallbackArg(clientMessage);
if (logger.isDebugEnabled()) {
- StringBuilder buffer = new StringBuilder();
- buffer.append(serverConnection.getName()).append(": Received ")
- .append(this.putAllClassName()).append(" request from ")
- .append(serverConnection.getSocketString()).append(" for region ").append(regionName)
- .append(callbackArg != null ? (" callbackArg " + callbackArg) : "").append(" with ")
- .append(numberOfKeys).append(" entries.");
- logger.debug(buffer.toString());
+ final String buffer = serverConnection.getName() + ": Received "
+ + putAllClassName() + " request from "
+ + serverConnection.getSocketString() + " for region " + regionName
+ + (callbackArg != null ? (" callbackArg " + callbackArg) : "") + " with "
+ + numberOfKeys + " entries.";
+ logger.debug(buffer);
}
// building the map
- Map map = new LinkedHashMap();
- Map<Object, VersionTag> retryVersions = new LinkedHashMap<Object, VersionTag>();
+ Map<Object, Object> map = new LinkedHashMap<>();
+ final Map<Object, VersionTag<?>> retryVersions = new LinkedHashMap<>();
// Map isObjectMap = new LinkedHashMap();
+ Part valuePart;
+ Object key;
for (int i = 0; i < numberOfKeys; i++) {
- keyPart = clientMessage.getPart(BASE_PART_COUNT + i * 2);
+ Part keyPart = clientMessage.getPart(BASE_PART_COUNT + i * 2);
key = keyPart.getStringOrObject();
if (key == null) {
String putAllMsg =
@@ -224,7 +223,7 @@ public class PutAll80 extends BaseCommand {
entryEventId.getSequenceID());
}
- VersionTag tag = findVersionTagsForRetriedBulkOp(region, entryEventId);
+ VersionTag<?> tag = findVersionTagsForRetriedBulkOp(region, entryEventId);
if (tag != null) {
retryVersions.put(key, tag);
}
@@ -254,23 +253,15 @@ public class PutAll80 extends BaseCommand {
authzRequest.putAllAuthorize(regionName, map, callbackArg);
map = putAllContext.getMap();
if (map instanceof UpdateOnlyMap) {
- map = ((UpdateOnlyMap) map).getInternalMap();
+ map = uncheckedCast(((UpdateOnlyMap) map).getInternalMap());
}
callbackArg = putAllContext.getCallbackArg();
}
- } else {
- // no auth, so update the map based on isObjectMap here
- /*
- * Collection entries = map.entrySet(); Iterator iterator = entries.iterator(); Map.Entry
- * mapEntry = null; while (iterator.hasNext()) { mapEntry = (Map.Entry)iterator.next();
- * Object currkey = mapEntry.getKey(); byte[] serializedValue = (byte[])mapEntry.getValue();
- * boolean isObject = ((Boolean)isObjectMap.get(currkey)).booleanValue(); if (isObject) {
- * map.put(currkey, CachedDeserializableFactory.create(serializedValue)); } }
- */
}
- response = region.basicBridgePutAll(map, retryVersions, serverConnection.getProxyID(),
- eventId, skipCallbacks, callbackArg);
+ response =
+ region.basicBridgePutAll(map, uncheckedCast(retryVersions), serverConnection.getProxyID(),
+ eventId, skipCallbacks, callbackArg);
if (!region.getConcurrencyChecksEnabled() || clientIsEmpty || !clientHasCCEnabled) {
// the client only needs this if versioning is being used and the client
// has storage
@@ -291,18 +282,10 @@ public class PutAll80 extends BaseCommand {
replyWithMetaData = true;
}
}
- } catch (RegionDestroyedException rde) {
+ } catch (RegionDestroyedException | ResourceException | PutAllPartialResultException rde) {
writeChunkedException(clientMessage, rde, serverConnection);
serverConnection.setAsTrue(RESPONDED);
return;
- } catch (ResourceException re) {
- writeChunkedException(clientMessage, re, serverConnection);
- serverConnection.setAsTrue(RESPONDED);
- return;
- } catch (PutAllPartialResultException pre) {
- writeChunkedException(clientMessage, pre, serverConnection);
- serverConnection.setAsTrue(RESPONDED);
- return;
} catch (Exception ce) {
// If an interrupted exception is thrown , rethrow it
checkForInterrupt(serverConnection, ce);
@@ -385,12 +368,6 @@ public class PutAll80 extends BaseCommand {
}
}
- @Override
- protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection serverConnection,
- PartitionedRegion pr, byte nwHop) throws IOException {
- throw new UnsupportedOperationException();
- }
-
private void writeReplyWithRefreshMetadata(Message origMsg, VersionedObjectList response,
ServerConnection servConn, PartitionedRegion pr, byte nwHop) throws IOException {
servConn.getCache().getCancelCriterion().checkCancelInProgress(null);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
index 1f0ea4a..c4b74a3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RemoveAll.java
@@ -14,6 +14,8 @@
*/
package org.apache.geode.internal.cache.tier.sockets.command;
+import static org.apache.geode.util.internal.UncheckedUtils.uncheckedCast;
+
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -30,7 +32,6 @@ import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.PutAllPartialResultException;
import org.apache.geode.internal.cache.ha.ThreadIdentifier;
-import org.apache.geode.internal.cache.tier.CachedRegionHelper;
import org.apache.geode.internal.cache.tier.Command;
import org.apache.geode.internal.cache.tier.MessageType;
import org.apache.geode.internal.cache.tier.sockets.BaseCommand;
@@ -62,17 +63,8 @@ public class RemoveAll extends BaseCommand {
public void cmdExecute(final Message clientMessage, final ServerConnection serverConnection,
final SecurityService securityService, long startp) throws IOException, InterruptedException {
long start = startp; // copy this since we need to modify it
- Part regionNamePart = null, numberOfKeysPart = null, keyPart = null;
- String regionName = null;
- int numberOfKeys = 0;
- Object key = null;
- Part eventPart = null;
- boolean replyWithMetaData = false;
- VersionedObjectList response = null;
- StringBuilder errMessage = new StringBuilder();
- CachedRegionHelper crHelper = serverConnection.getCachedRegionHelper();
- CacheServerStats stats = serverConnection.getCacheServerStats();
+ final CacheServerStats stats = serverConnection.getCacheServerStats();
serverConnection.setAsTrue(REQUIRES_RESPONSE);
serverConnection.setAsTrue(REQUIRES_CHUNKED_RESPONSE);
@@ -82,12 +74,16 @@ public class RemoveAll extends BaseCommand {
stats.incReadRemoveAllRequestTime(start - oldStart);
}
+ final String regionName;
+ VersionedObjectList response;
+ boolean replyWithMetaData = false;
try {
// Retrieve the data from the message parts
// part 0: region name
- regionNamePart = clientMessage.getPart(0);
+ Part regionNamePart = clientMessage.getPart(0);
regionName = regionNamePart.getCachedString();
+ StringBuilder errMessage = new StringBuilder();
if (regionName == null) {
String txt =
"The input region name for the removeAll request is null";
@@ -108,7 +104,7 @@ public class RemoveAll extends BaseCommand {
}
// part 1: eventID
- eventPart = clientMessage.getPart(1);
+ Part eventPart = clientMessage.getPart(1);
ByteBuffer eventIdPartsBuffer = ByteBuffer.wrap(eventPart.getSerializedForm());
long threadId = EventID.readEventIdPartsFromOptmizedByteArray(eventIdPartsBuffer);
long sequenceId = EventID.readEventIdPartsFromOptmizedByteArray(eventIdPartsBuffer);
@@ -126,8 +122,8 @@ public class RemoveAll extends BaseCommand {
Object callbackArg = clientMessage.getPart(3).getObject();
// part 4: number of keys
- numberOfKeysPart = clientMessage.getPart(4);
- numberOfKeys = numberOfKeysPart.getInt();
+ final Part numberOfKeysPart = clientMessage.getPart(4);
+ final int numberOfKeys = numberOfKeysPart.getInt();
if (logger.isDebugEnabled()) {
StringBuilder buffer = new StringBuilder();
@@ -137,10 +133,11 @@ public class RemoveAll extends BaseCommand {
.append(numberOfKeys).append(" keys.");
logger.debug(buffer);
}
- ArrayList<Object> keys = new ArrayList<Object>(numberOfKeys);
- ArrayList<VersionTag> retryVersions = new ArrayList<VersionTag>(numberOfKeys);
+ final ArrayList<Object> keys = new ArrayList<>(numberOfKeys);
+ final ArrayList<VersionTag<?>> retryVersions = new ArrayList<>(numberOfKeys);
+ Object key;
for (int i = 0; i < numberOfKeys; i++) {
- keyPart = clientMessage.getPart(5 + i);
+ final Part keyPart = clientMessage.getPart(5 + i);
key = keyPart.getStringOrObject();
if (key == null) {
String txt =
@@ -169,7 +166,7 @@ public class RemoveAll extends BaseCommand {
entryEventId.getSequenceID());
}
- VersionTag tag = findVersionTagsForRetriedBulkOp(region, entryEventId);
+ VersionTag<?> tag = findVersionTagsForRetriedBulkOp(region, entryEventId);
retryVersions.add(tag);
// FIND THE VERSION TAG FOR THIS KEY - but how? all we have is the
// removeAll eventId, not individual eventIds for entries, right?
@@ -199,7 +196,8 @@ public class RemoveAll extends BaseCommand {
}
}
- response = region.basicBridgeRemoveAll(keys, retryVersions, serverConnection.getProxyID(),
+ response = region.basicBridgeRemoveAll(keys, uncheckedCast(retryVersions),
+ serverConnection.getProxyID(),
eventId, callbackArg);
if (!region.getConcurrencyChecksEnabled() || clientIsEmpty || !clientHasCCEnabled) {
// the client only needs this if versioning is being used and the client
@@ -221,18 +219,10 @@ public class RemoveAll extends BaseCommand {
replyWithMetaData = true;
}
}
- } catch (RegionDestroyedException rde) {
+ } catch (RegionDestroyedException | ResourceException | PutAllPartialResultException rde) {
writeChunkedException(clientMessage, rde, serverConnection);
serverConnection.setAsTrue(RESPONDED);
return;
- } catch (ResourceException re) {
- writeChunkedException(clientMessage, re, serverConnection);
- serverConnection.setAsTrue(RESPONDED);
- return;
- } catch (PutAllPartialResultException pre) {
- writeChunkedException(clientMessage, pre, serverConnection);
- serverConnection.setAsTrue(RESPONDED);
- return;
} catch (Exception ce) {
// If an interrupted exception is thrown , rethrow it
checkForInterrupt(serverConnection, ce);
@@ -317,12 +307,6 @@ public class RemoveAll extends BaseCommand {
}
}
- @Override
- protected void writeReplyWithRefreshMetadata(Message origMsg, ServerConnection serverConnection,
- PartitionedRegion pr, byte nwHop) throws IOException {
- throw new UnsupportedOperationException();
- }
-
private void writeReplyWithRefreshMetadata(Message origMsg, VersionedObjectList response,
ServerConnection servConn, PartitionedRegion pr, byte nwHop) throws IOException {
servConn.getCache().getCancelCriterion().checkCancelInProgress(null);