You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by go...@apache.org on 2017/09/19 17:10:46 UTC

[geode] branch develop updated: GEODE-3548 Add logging to new protocol code

This is an automated email from the ASF dual-hosted git repository.

gosullivan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 637a685  GEODE-3548 Add logging to new protocol code
637a685 is described below

commit 637a685ddb8973a3456603ec0b9ccfd1b7bfb810
Author: Hitesh Khamesra <hk...@pivotal.io>
AuthorDate: Tue Sep 5 09:40:05 2017 -0700

    GEODE-3548 Add logging to new protocol code
    
    This closes #755
---
 .../tier/sockets/GenericProtocolServerConnection.java      |  1 +
 .../cache/tier/sockets/ServerConnectionFactory.java        | 14 +++++++-------
 .../geode/protocol/protobuf/ProtobufOpsProcessor.java      |  7 +++++++
 .../geode/protocol/protobuf/ProtobufStreamProcessor.java   |  8 +++++++-
 .../protobuf/operations/GetAllRequestOperationHandler.java | 10 ++++++++++
 .../operations/GetRegionRequestOperationHandler.java       |  5 +++++
 .../protobuf/operations/GetRequestOperationHandler.java    |  7 +++++++
 .../protobuf/operations/PutAllRequestOperationHandler.java | 13 ++++++++-----
 .../protobuf/operations/PutRequestOperationHandler.java    |  7 +++++++
 .../protobuf/operations/RemoveRequestOperationHandler.java |  5 ++++-
 10 files changed, 63 insertions(+), 14 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnection.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnection.java
index 136a659..eb401b9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnection.java
@@ -81,6 +81,7 @@ public class GenericProtocolServerConnection extends ServerConnection {
     } catch (EOFException e) {
       this.setFlagProcessMessagesAsFalse();
       setClientDisconnectedException(e);
+      logger.debug("Encountered EOF while processing message: {}", e);
     } catch (IOException e) {
       logger.warn(e);
       this.setFlagProcessMessagesAsFalse();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionFactory.java
index 31eab49..ffc2d39 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionFactory.java
@@ -17,13 +17,6 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.internal.cache.tier.CommunicationMode.ProtobufClientServerProtocol;
 
-import org.apache.geode.StatisticsFactory;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.cache.tier.Acceptor;
-import org.apache.geode.internal.cache.tier.CachedRegionHelper;
-import org.apache.geode.internal.security.SecurityService;
-import org.apache.geode.security.server.Authenticator;
-
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.Socket;
@@ -31,6 +24,13 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.ServiceLoader;
 
+import org.apache.geode.StatisticsFactory;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.tier.Acceptor;
+import org.apache.geode.internal.cache.tier.CachedRegionHelper;
+import org.apache.geode.internal.security.SecurityService;
+import org.apache.geode.security.server.Authenticator;
+
 /**
  * Creates instances of ServerConnection based on the connection mode provided.
  */
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufOpsProcessor.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufOpsProcessor.java
index e5b4ae4..848d70b 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufOpsProcessor.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufOpsProcessor.java
@@ -14,9 +14,12 @@
  */
 package org.apache.geode.protocol.protobuf;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.protocol.protobuf.ClientProtocol;
 import org.apache.geode.protocol.protobuf.registry.OperationContextRegistry;
 import org.apache.geode.protocol.protobuf.statistics.ProtobufClientStatistics;
@@ -32,6 +35,7 @@ public class ProtobufOpsProcessor {
 
   private final OperationContextRegistry operationContextRegistry;
   private final SerializationService serializationService;
+  private static final Logger logger = LogService.getLogger();
 
   public ProtobufOpsProcessor(SerializationService serializationService,
       OperationContextRegistry operationContextRegistry) {
@@ -42,6 +46,7 @@ public class ProtobufOpsProcessor {
   public ClientProtocol.Response process(ClientProtocol.Request request,
       MessageExecutionContext context) {
     ClientProtocol.Request.RequestAPICase requestType = request.getRequestAPICase();
+    logger.debug("Processing request of type {}", requestType);
     OperationContext operationContext = operationContextRegistry.getOperationContext(requestType);
     ClientProtocol.Response.Builder builder;
     Result result;
@@ -50,12 +55,14 @@ public class ProtobufOpsProcessor {
         result = operationContext.getOperationHandler().process(serializationService,
             operationContext.getFromRequest().apply(request), context);
       } else {
+        logger.warn("Received unauthorized request");
         recordAuthorizationViolation(context);
         result = Failure.of(ProtobufResponseUtilities.makeErrorResponse(
             ProtocolErrorCode.AUTHORIZATION_FAILED.codeValue,
             "User isn't authorized for this operation."));
       }
     } catch (InvalidExecutionContextException exception) {
+      logger.error("Invalid execution context found for operation {}", requestType);
       result = Failure.of(ProtobufResponseUtilities.makeErrorResponse(
           ProtocolErrorCode.UNSUPPORTED_OPERATION.codeValue,
           "Invalid execution context found for operation."));
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufStreamProcessor.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufStreamProcessor.java
index 717365b..75d141b 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufStreamProcessor.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufStreamProcessor.java
@@ -19,11 +19,14 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.StatisticsFactory;
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.internal.cache.tier.sockets.ClientProtocolMessageHandler;
 import org.apache.geode.internal.cache.tier.sockets.ClientProtocolStatistics;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.protocol.exception.InvalidProtocolMessageException;
 import org.apache.geode.internal.protocol.protobuf.ClientProtocol;
 import org.apache.geode.protocol.protobuf.registry.OperationContextRegistry;
@@ -43,6 +46,7 @@ public class ProtobufStreamProcessor implements ClientProtocolMessageHandler {
   private final ProtobufProtocolSerializer protobufProtocolSerializer;
   private final ProtobufOpsProcessor protobufOpsProcessor;
   private ProtobufClientStatistics statistics;
+  private static final Logger logger = LogService.getLogger();
 
   public ProtobufStreamProcessor() throws CodecAlreadyRegisteredForTypeException {
     protobufProtocolSerializer = new ProtobufProtocolSerializer();
@@ -75,7 +79,9 @@ public class ProtobufStreamProcessor implements ClientProtocolMessageHandler {
       throws InvalidProtocolMessageException, IOException {
     ClientProtocol.Message message = protobufProtocolSerializer.deserialize(inputStream);
     if (message == null) {
-      throw new EOFException("Tried to deserialize protobuf message at EOF");
+      String errorMessage = "Tried to deserialize protobuf message at EOF";
+      logger.warn(errorMessage);
+      throw new EOFException(errorMessage);
     }
     statistics.messageReceived(message.getSerializedSize());
 
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetAllRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetAllRequestOperationHandler.java
index 446dbcb..848bb3e 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetAllRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetAllRequestOperationHandler.java
@@ -18,6 +18,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.CacheLoaderException;
 import org.apache.geode.cache.PartitionedRegionStorageException;
@@ -25,6 +27,8 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.cache.TimeoutException;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
+import org.apache.geode.protocol.operations.OperationHandler;
 import org.apache.geode.internal.protocol.protobuf.BasicTypes;
 import org.apache.geode.internal.protocol.protobuf.RegionAPI;
 import org.apache.geode.protocol.operations.OperationHandler;
@@ -41,6 +45,7 @@ import org.apache.geode.serialization.registry.exception.CodecNotRegisteredForTy
 @Experimental
 public class GetAllRequestOperationHandler
     implements OperationHandler<RegionAPI.GetAllRequest, RegionAPI.GetAllResponse> {
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public Result<RegionAPI.GetAllResponse> process(SerializationService serializationService,
@@ -49,6 +54,7 @@ public class GetAllRequestOperationHandler
     String regionName = request.getRegionName();
     Region region = executionContext.getCache().getRegion(regionName);
     if (region == null) {
+      logger.error("Received GetAll request for non-existing region {}", regionName);
       return Failure.of(ProtobufResponseUtilities
           .makeErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND.codeValue, "Region not found"));
     }
@@ -76,24 +82,28 @@ public class GetAllRequestOperationHandler
       Object value = region.get(decodedKey);
       return ProtobufUtilities.createEntry(serializationService, decodedKey, value);
     } catch (CodecNotRegisteredForTypeException | UnsupportedEncodingTypeException ex) {
+      logger.error("Encoding not supported: {}", ex);
       return BasicTypes.KeyedError.newBuilder().setKey(key)
           .setError(BasicTypes.Error.newBuilder()
               .setErrorCode(ProtocolErrorCode.VALUE_ENCODING_ERROR.codeValue)
               .setMessage("Encoding not supported."))
           .build();
     } catch (org.apache.geode.distributed.LeaseExpiredException | TimeoutException e) {
+      logger.error("Operation timed out: {}", e);
       return BasicTypes.KeyedError.newBuilder().setKey(key)
           .setError(BasicTypes.Error.newBuilder()
               .setErrorCode(ProtocolErrorCode.OPERATION_TIMEOUT.codeValue)
               .setMessage("Operation timed out: " + e.getMessage()))
           .build();
     } catch (CacheLoaderException | PartitionedRegionStorageException e) {
+      logger.error("Data unreachable: {}", e);
       return BasicTypes.KeyedError.newBuilder().setKey(key)
           .setError(BasicTypes.Error.newBuilder()
               .setErrorCode(ProtocolErrorCode.DATA_UNREACHABLE.codeValue)
               .setMessage("Data unreachable: " + e.getMessage()))
           .build();
     } catch (NullPointerException | IllegalArgumentException e) {
+      logger.error("Invalid input: {}", e);
       return BasicTypes.KeyedError.newBuilder().setKey(key)
           .setError(BasicTypes.Error.newBuilder()
               .setErrorCode(ProtocolErrorCode.CONSTRAINT_VIOLATION.codeValue)
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRegionRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRegionRequestOperationHandler.java
index a41519a..098279f 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRegionRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRegionRequestOperationHandler.java
@@ -14,10 +14,13 @@
  */
 package org.apache.geode.protocol.protobuf.operations;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.Region;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.protocol.protobuf.BasicTypes;
 import org.apache.geode.protocol.operations.OperationHandler;
 import org.apache.geode.protocol.protobuf.Failure;
@@ -32,6 +35,7 @@ import org.apache.geode.serialization.SerializationService;
 @Experimental
 public class GetRegionRequestOperationHandler
     implements OperationHandler<RegionAPI.GetRegionRequest, RegionAPI.GetRegionResponse> {
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public Result<RegionAPI.GetRegionResponse> process(SerializationService serializationService,
@@ -41,6 +45,7 @@ public class GetRegionRequestOperationHandler
 
     Region region = executionContext.getCache().getRegion(regionName);
     if (region == null) {
+      logger.error("Received GetRegion request for non-existing region {}", regionName);
       return Failure.of(
           ProtobufResponseUtilities.makeErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND.codeValue,
               "No region exists for name: " + regionName));
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRequestOperationHandler.java
index 79ad85a..708f576 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/GetRequestOperationHandler.java
@@ -14,10 +14,13 @@
  */
 package org.apache.geode.protocol.protobuf.operations;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.Region;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.protocol.operations.OperationHandler;
 import org.apache.geode.internal.protocol.protobuf.BasicTypes;
 import org.apache.geode.protocol.protobuf.Failure;
@@ -34,6 +37,7 @@ import org.apache.geode.serialization.registry.exception.CodecNotRegisteredForTy
 @Experimental
 public class GetRequestOperationHandler
     implements OperationHandler<RegionAPI.GetRequest, RegionAPI.GetResponse> {
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public Result<RegionAPI.GetResponse> process(SerializationService serializationService,
@@ -42,6 +46,7 @@ public class GetRequestOperationHandler
     String regionName = request.getRegionName();
     Region region = executionContext.getCache().getRegion(regionName);
     if (region == null) {
+      logger.error("Received Get request for non-existing region {}", regionName);
       return Failure.of(ProtobufResponseUtilities
           .makeErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND.codeValue, "Region not found"));
     }
@@ -58,9 +63,11 @@ public class GetRequestOperationHandler
           ProtobufUtilities.createEncodedValue(serializationService, resultValue);
       return Success.of(RegionAPI.GetResponse.newBuilder().setResult(encodedValue).build());
     } catch (UnsupportedEncodingTypeException ex) {
+      logger.error("Received Get request with unsupported encoding: {}", ex);
       return Failure.of(ProtobufResponseUtilities.makeErrorResponse(
           ProtocolErrorCode.VALUE_ENCODING_ERROR.codeValue, "Encoding not supported."));
     } catch (CodecNotRegisteredForTypeException ex) {
+      logger.error("Got codec error when decoding Get request: {}", ex);
       return Failure.of(ProtobufResponseUtilities.makeErrorResponse(
           ProtocolErrorCode.VALUE_ENCODING_ERROR.codeValue,
           "Codec error in protobuf deserialization."));
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutAllRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutAllRequestOperationHandler.java
index 8f2d9ef..deb8085 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutAllRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutAllRequestOperationHandler.java
@@ -24,6 +24,7 @@ import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.Region;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.protocol.operations.OperationHandler;
 import org.apache.geode.internal.protocol.protobuf.BasicTypes;
 import org.apache.geode.protocol.protobuf.Failure;
@@ -40,18 +41,20 @@ import org.apache.geode.serialization.registry.exception.CodecNotRegisteredForTy
 @Experimental
 public class PutAllRequestOperationHandler
     implements OperationHandler<RegionAPI.PutAllRequest, RegionAPI.PutAllResponse> {
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   @Override
   public Result<RegionAPI.PutAllResponse> process(SerializationService serializationService,
       RegionAPI.PutAllRequest putAllRequest, MessageExecutionContext executionContext)
       throws InvalidExecutionContextException {
-    Region region = executionContext.getCache().getRegion(putAllRequest.getRegionName());
+    String regionName = putAllRequest.getRegionName();
+    Region region = executionContext.getCache().getRegion(regionName);
 
     if (region == null) {
-      return Failure.of(ProtobufResponseUtilities.createAndLogErrorResponse(
-          ProtocolErrorCode.REGION_NOT_FOUND,
-          "Region passed by client did not exist: " + putAllRequest.getRegionName(), logger, null));
+      logger.error("Received PutAll request for non-existing region {}", regionName);
+      return Failure.of(
+          ProtobufResponseUtilities.createAndLogErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND,
+              "Region passed does not exist: " + regionName, logger, null));
     }
 
     RegionAPI.PutAllResponse.Builder builder = RegionAPI.PutAllResponse.newBuilder()
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutRequestOperationHandler.java
index 3be4a84..8a23bdb 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/PutRequestOperationHandler.java
@@ -14,10 +14,13 @@
  */
 package org.apache.geode.protocol.protobuf.operations;
 
+import org.apache.logging.log4j.Logger;
+
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.Region;
 import org.apache.geode.internal.cache.tier.sockets.MessageExecutionContext;
 import org.apache.geode.internal.exception.InvalidExecutionContextException;
+import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.protocol.operations.OperationHandler;
 import org.apache.geode.internal.protocol.protobuf.BasicTypes;
 import org.apache.geode.protocol.protobuf.Failure;
@@ -34,6 +37,7 @@ import org.apache.geode.serialization.registry.exception.CodecNotRegisteredForTy
 @Experimental
 public class PutRequestOperationHandler
     implements OperationHandler<RegionAPI.PutRequest, RegionAPI.PutResponse> {
+  private static final Logger logger = LogService.getLogger();
 
   @Override
   public Result<RegionAPI.PutResponse> process(SerializationService serializationService,
@@ -42,6 +46,7 @@ public class PutRequestOperationHandler
     String regionName = request.getRegionName();
     Region region = executionContext.getCache().getRegion(regionName);
     if (region == null) {
+      logger.warn("Received Put request for non-existing region: {}", regionName);
       return Failure.of(
           ProtobufResponseUtilities.makeErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND.codeValue,
               "Region passed by client did not exist: " + regionName));
@@ -56,11 +61,13 @@ public class PutRequestOperationHandler
         region.put(decodedKey, decodedValue);
         return Success.of(RegionAPI.PutResponse.newBuilder().build());
       } catch (ClassCastException ex) {
+        logger.error("Received Put request with invalid key type: {}", ex);
         return Failure.of(ProtobufResponseUtilities.makeErrorResponse(
             ProtocolErrorCode.CONSTRAINT_VIOLATION.codeValue,
             "invalid key or value type for region " + regionName));
       }
     } catch (UnsupportedEncodingTypeException | CodecNotRegisteredForTypeException ex) {
+      logger.error("Got codec error when decoding Put request: {}", ex);
       return Failure.of(ProtobufResponseUtilities
           .makeErrorResponse(ProtocolErrorCode.VALUE_ENCODING_ERROR.codeValue, ex.getMessage()));
     }
diff --git a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/RemoveRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/RemoveRequestOperationHandler.java
index 513dc25..ce80cdd 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/RemoveRequestOperationHandler.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/operations/RemoveRequestOperationHandler.java
@@ -36,7 +36,7 @@ import org.apache.geode.serialization.registry.exception.CodecNotRegisteredForTy
 @Experimental
 public class RemoveRequestOperationHandler
     implements OperationHandler<RegionAPI.RemoveRequest, RegionAPI.RemoveResponse> {
-  private static Logger logger = LogManager.getLogger();
+  private static final Logger logger = LogManager.getLogger();
 
   @Override
   public Result<RegionAPI.RemoveResponse> process(SerializationService serializationService,
@@ -46,6 +46,7 @@ public class RemoveRequestOperationHandler
     String regionName = request.getRegionName();
     Region region = executionContext.getCache().getRegion(regionName);
     if (region == null) {
+      logger.error("Received Remove request for non-existing region {}", regionName);
       return Failure.of(ProtobufResponseUtilities
           .makeErrorResponse(ProtocolErrorCode.REGION_NOT_FOUND.codeValue, "Region not found"));
     }
@@ -57,9 +58,11 @@ public class RemoveRequestOperationHandler
       return Success.of(RegionAPI.RemoveResponse.newBuilder().build());
     } catch (UnsupportedEncodingTypeException ex) {
       // can be thrown by encoding or decoding.
+      logger.error("Received Remove request with unsupported encoding: {}", ex);
       return Failure.of(ProtobufResponseUtilities.createAndLogErrorResponse(
           ProtocolErrorCode.VALUE_ENCODING_ERROR, "Encoding not supported.", logger, ex));
     } catch (CodecNotRegisteredForTypeException ex) {
+      logger.error("Got codec error when decoding Remove request: {}", ex);
       return Failure.of(ProtobufResponseUtilities.createAndLogErrorResponse(
           ProtocolErrorCode.VALUE_ENCODING_ERROR, "Codec error in protobuf deserialization.",
           logger, ex));

-- 
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].