You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2017/10/12 23:22:05 UTC
[geode] branch feature/GEODE-3774 updated: GEODE-3774: Amended
TCPServer code to store the loader and not the clientProtocolService
This is an automated email from the ASF dual-hosted git repository.
udo pushed a commit to branch feature/GEODE-3774
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-3774 by this push:
new 83a8d0a GEODE-3774: Amended TCPServer code to store the loader and not the clientProtocolService
83a8d0a is described below
commit 83a8d0a8a1ed97418590192468efe042d9bb4b54
Author: kohlmu-pivotal <uk...@pivotal.io>
AuthorDate: Thu Oct 12 16:21:56 2017 -0700
GEODE-3774: Amended TCPServer code to store the loader and not the clientProtocolService
---
.../distributed/internal/InternalLocator.java | 3 ++-
.../distributed/internal/tcpserver/TcpServer.java | 26 ++++++++++++----------
.../tier/sockets/ClientProtocolServiceLoader.java | 1 -
.../cache/tier/sockets/TcpServerFactory.java | 12 +++-------
4 files changed, 19 insertions(+), 23 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
index 26864d2..557610f 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
@@ -1336,7 +1336,8 @@ public class InternalLocator extends Locator implements ConnectListener {
this.stats.hookupStats(sys,
SocketCreator.getLocalHost().getCanonicalHostName() + '-' + this.server.getBindAddress());
- ClientProtocolService clientProtocolService = this.server.getClientProtocolService();
+ ClientProtocolService clientProtocolService =
+ this.server.getClientProtocolServiceLoader().lookupService();
if (clientProtocolService != null) {
clientProtocolService.initializeStatistics("LocatorStats", sys);
}
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
index b9d10f6..40f1f0f 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
@@ -61,7 +61,9 @@ import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.tier.CommunicationMode;
import org.apache.geode.internal.cache.tier.sockets.ClientProtocolProcessor;
import org.apache.geode.internal.cache.tier.sockets.ClientProtocolService;
+import org.apache.geode.internal.cache.tier.sockets.ClientProtocolServiceLoader;
import org.apache.geode.internal.cache.tier.sockets.HandShake;
+import org.apache.geode.internal.cache.tier.sockets.ServiceLoadingFailureException;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.internal.net.SocketCreator;
import org.apache.geode.internal.net.SocketCreatorFactory;
@@ -134,7 +136,7 @@ public class TcpServer {
private final PoolStatHelper poolHelper;
private final InternalLocator internalLocator;
private final TcpHandler handler;
- private final ClientProtocolService clientProtocolService;
+ private final ClientProtocolServiceLoader clientProtocolServiceLoader;
private PooledExecutorWithDMStats executor;
@@ -159,20 +161,20 @@ public class TcpServer {
/**
* returns the message handler used for client/locator communications processing
*/
- public ClientProtocolService getClientProtocolService() {
- return clientProtocolService;
+ public ClientProtocolServiceLoader getClientProtocolServiceLoader() {
+ return clientProtocolServiceLoader;
}
public TcpServer(int port, InetAddress bind_address, Properties sslConfig,
DistributionConfigImpl cfg, TcpHandler handler, PoolStatHelper poolHelper,
ThreadGroup threadGroup, String threadName, InternalLocator internalLocator,
- ClientProtocolService clientProtocolService) {
+ ClientProtocolServiceLoader clientProtocolServiceLoader) {
this.port = port;
this.bind_address = bind_address;
this.handler = handler;
this.poolHelper = poolHelper;
this.internalLocator = internalLocator;
- this.clientProtocolService = clientProtocolService;
+ this.clientProtocolServiceLoader = clientProtocolServiceLoader;
// register DSFID types first; invoked explicitly so that all message type
// initializations do not happen in first deserialization on a possibly
// "precious" thread
@@ -382,13 +384,9 @@ public class TcpServer {
if (gossipVersion == NON_GOSSIP_REQUEST_VERSION) {
if (input.readUnsignedByte() == PROTOBUF_CLIENT_SERVER_PROTOCOL
&& Boolean.getBoolean("geode.feature-protobuf-protocol")) {
- if (clientProtocolService == null) {
- // this shouldn't happen.
- log.error("Client protocol service not initialized but a request was received");
- socket.close();
- throw new IOException(
- "Client protocol service not initialized but a request was received");
- } else {
+ try {
+ ClientProtocolService clientProtocolService =
+ clientProtocolServiceLoader.lookupService();
try (ClientProtocolProcessor pipeline =
clientProtocolService.createProcessorForLocator(internalLocator)) {
pipeline.processMessage(input, socket.getOutputStream());
@@ -396,6 +394,10 @@ public class TcpServer {
// should not happen on the locator as there is no handshake.
log.error("Unexpected exception in client message processing", e);
}
+ } catch (ServiceLoadingFailureException e) {
+ log.error("There was an error looking up the client protocol service", e);
+ socket.close();
+ throw new IOException("There was an error looking up the client protocol service", e);
}
} else {
rejectUnknownProtocolConnection(socket, gossipVersion);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProtocolServiceLoader.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProtocolServiceLoader.java
index 5051c05..8b069ad 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProtocolServiceLoader.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProtocolServiceLoader.java
@@ -33,7 +33,6 @@ public class ClientProtocolServiceLoader {
resultList.add(clientProtocolService);
}
-
return resultList;
}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/TcpServerFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/TcpServerFactory.java
index f8e903f..47b26d8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/TcpServerFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/TcpServerFactory.java
@@ -28,17 +28,11 @@ import org.apache.geode.distributed.internal.tcpserver.TcpServer;
import org.apache.geode.internal.logging.LogService;
public class TcpServerFactory {
- private final ClientProtocolService clientProtocolService;
+ private final ClientProtocolServiceLoader clientProtocolServiceLoader;
static final Logger logger = LogService.getLogger();
public TcpServerFactory() {
- ClientProtocolService service = null;
- try {
- service = new ClientProtocolServiceLoader().lookupService();
- } catch (ServiceLoadingFailureException ex) {
- logger.warn("Could not load client protocol", ex);
- }
- clientProtocolService = service;
+ clientProtocolServiceLoader = new ClientProtocolServiceLoader();
}
public TcpServer makeTcpServer(int port, InetAddress bind_address, Properties sslConfig,
@@ -46,6 +40,6 @@ public class TcpServerFactory {
ThreadGroup threadGroup, String threadName, InternalLocator internalLocator) {
return new TcpServer(port, bind_address, sslConfig, cfg, handler, poolHelper, threadGroup,
- threadName, internalLocator, clientProtocolService);
+ threadName, internalLocator, clientProtocolServiceLoader);
}
}
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].