You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2018/11/15 17:30:31 UTC
knox git commit: KNOX-1603 - Ensure resources are properly closed
Repository: knox
Updated Branches:
refs/heads/master b34c0eb81 -> 7c22f02ad
KNOX-1603 - Ensure resources are properly closed
Signed-off-by: Kevin Risden <kr...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/7c22f02a
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/7c22f02a
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/7c22f02a
Branch: refs/heads/master
Commit: 7c22f02ad8fe1df99b184d906077e6028b7f65a1
Parents: b34c0eb
Author: Kevin Risden <kr...@apache.org>
Authored: Thu Nov 15 09:15:37 2018 -0500
Committer: Kevin Risden <kr...@apache.org>
Committed: Thu Nov 15 12:30:03 2018 -0500
----------------------------------------------------------------------
.../org/apache/knox/gateway/GatewayServer.java | 6 +-
.../gateway/util/ServiceDefinitionsLoader.java | 12 +--
.../service/test/ServiceTestResource.java | 106 ++++++++++---------
.../services/hostmap/FileBasedHostMapper.java | 35 +++---
.../java/org/apache/knox/test/TestUtils.java | 4 +-
5 files changed, 80 insertions(+), 83 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/knox/blob/7c22f02a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index 9f9bc1e..385f9cb 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -960,9 +960,9 @@ public class GatewayServer {
}
private static void checkAddressAvailability( InetSocketAddress address ) throws IOException {
- ServerSocket socket = new ServerSocket();
- socket.bind( address );
- socket.close();
+ try( ServerSocket socket = new ServerSocket() ) {
+ socket.bind(address);
+ }
}
private static class RegexFilenameFilter implements FilenameFilter {
http://git-wip-us.apache.org/repos/asf/knox/blob/7c22f02a/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java b/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
index cd6b7d2..d2687ec 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
@@ -118,15 +118,9 @@ public class ServiceDefinitionsLoader {
public static UrlRewriteRulesDescriptor loadRewriteRules(File servicesDir) {
File rewriteFile = new File(servicesDir, REWRITE_FILE);
if ( rewriteFile.exists() ) {
- InputStream stream;
- try {
- stream = new FileInputStream(rewriteFile);
- Reader reader = new InputStreamReader(stream, StandardCharsets.UTF_8);
- UrlRewriteRulesDescriptor rules = UrlRewriteRulesDescriptorFactory.load(
- "xml", reader);
- reader.close();
- stream.close();
- return rules;
+ try (InputStream stream = new FileInputStream(rewriteFile);
+ Reader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) {
+ return UrlRewriteRulesDescriptorFactory.load("xml", reader);
} catch ( FileNotFoundException e ) {
log.failedToFindRewriteFile(rewriteFile.getAbsolutePath(), e);
} catch ( IOException e ) {
http://git-wip-us.apache.org/repos/asf/knox/blob/7c22f02a/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
----------------------------------------------------------------------
diff --git a/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java b/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
index 2ab6a14..9e8554e 100644
--- a/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
+++ b/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
@@ -70,7 +70,7 @@ public class ServiceTestResource {
String authString;
GatewayConfig config = (GatewayConfig) request.getServletContext().getAttribute(GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE);
SSLContext ctx = null;
- CloseableHttpClient client;
+ CloseableHttpClient client = null;
String id = getTopologyName();
Topology topology = getTopology(id);
@@ -92,63 +92,67 @@ public class ServiceTestResource {
}
// Initialize the HTTP client
- if(ctx == null) {
- client = HttpClients.createDefault();
- } else {
- client = HttpClients.custom().setSslcontext(ctx).build();
- }
-
- if(topology != null) {
- for (Service s : topology.getServices()) {
- List<String> urls = getServiceTestURLs(config, s.getRole(), topology);
-
-// Make sure we handle a case where no URLs are found.
- if(urls.size() <= 0) {
- ServiceTest test = new ServiceTest(s);
- test.setMessage("This service did not contain any test URLs");
- }
+ try {
+ if (ctx == null) {
+ client = HttpClients.createDefault();
+ } else {
+ client = HttpClients.custom().setSSLContext(ctx).build();
+ }
- for (String url : urls) {
- HttpGet req = new HttpGet();
- ServiceTest test = new ServiceTest(s, url);
+ if (topology != null) {
+ for (Service s : topology.getServices()) {
+ List<String> urls = getServiceTestURLs(config, s.getRole(), topology);
- if(authString != null) {
- req.setHeader("Authorization", authString);
- } else {
- messages.add("No credentials provided. Expect HTTP 401 responses.");
+ // Make sure we handle a case where no URLs are found.
+ if (urls.size() <= 0) {
+ ServiceTest test = new ServiceTest(s);
+ test.setMessage("This service did not contain any test URLs");
}
- try {
- req.setURI(new URIBuilder(url).build());
- CloseableHttpResponse res = client.execute(req);
- String contentLength = "Content-Length:" + res.getEntity().getContentLength();
- String contentType = (res.getEntity().getContentType() != null) ? res.getEntity().getContentType().toString() : "No-contenttype";
- test.setResponseContent( contentLength + "," + contentType );
- test.setHttpCode(res.getStatusLine().getStatusCode());
- res.close();
-
- } catch (IOException e) {
- messages.add("Exception: " + e.getMessage());
- test.setMessage(e.getMessage());
- } catch (URISyntaxException e) {
- test.setMessage(e.getMessage());
- } catch (Exception e) {
- messages.add(e.getMessage());
- test.setMessage(e.getMessage());
- } finally {
- req.releaseConnection();
- tests.add(test);
+ for (String url : urls) {
+ HttpGet req = new HttpGet();
+ ServiceTest test = new ServiceTest(s, url);
+
+ if (authString != null) {
+ req.setHeader("Authorization", authString);
+ } else {
+ messages.add("No credentials provided. Expect HTTP 401 responses.");
+ }
+
+ try {
+ req.setURI(new URIBuilder(url).build());
+ CloseableHttpResponse res = client.execute(req);
+ String contentLength = "Content-Length:" + res.getEntity().getContentLength();
+ String contentType = (res.getEntity().getContentType() != null) ? res.getEntity().getContentType().toString() : "No-contenttype";
+ test.setResponseContent(contentLength + "," + contentType);
+ test.setHttpCode(res.getStatusLine().getStatusCode());
+ res.close();
+
+ } catch (IOException e) {
+ messages.add("Exception: " + e.getMessage());
+ test.setMessage(e.getMessage());
+ } catch (URISyntaxException e) {
+ test.setMessage(e.getMessage());
+ } catch (Exception e) {
+ messages.add(e.getMessage());
+ test.setMessage(e.getMessage());
+ } finally {
+ req.releaseConnection();
+ tests.add(test);
+ }
}
}
+ } else {
+ messages.add("Topology " + id + " not found");
+ }
+ } finally {
+ if(client != null) {
+ try {
+ client.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
- } else {
- messages.add("Topology " + id + " not found");
- }
-
- try {
- client.close();
- } catch (IOException e) {
- e.printStackTrace();
}
ServiceTestWrapper stw = new ServiceTestWrapper();
http://git-wip-us.apache.org/repos/asf/knox/blob/7c22f02a/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
----------------------------------------------------------------------
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java b/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
index 2055e53..1d73078 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
@@ -32,27 +32,28 @@ public class FileBasedHostMapper implements HostMapper {
private Map<String, String> outbound = new HashMap<>();
public FileBasedHostMapper( URL url ) throws IOException {
- if( url != null ) {
- InputStream stream = url.openStream();
- BufferedReader reader = new BufferedReader( new InputStreamReader( stream, StandardCharsets.UTF_8 ) );
- String line = reader.readLine();
- while( line != null ) {
- String[] lineSplit = line.split( "=" );
- if( lineSplit.length >= 2 ) {
- String[] externalSplit = lineSplit[ 0 ].split( "," );
- String[] internalSplit = lineSplit[ 1 ].split( "," );
- if( externalSplit.length >= 1 && internalSplit.length >= 1 ) {
- for( String external : externalSplit ) {
- inbound.put( external.trim(), internalSplit[ 0 ].trim() );
- }
- for( String internal : internalSplit ) {
- outbound.put( internal.trim(), externalSplit[ 0 ].trim() );
+ if (url != null) {
+ try (InputStream stream = url.openStream();
+ InputStreamReader inputStreamReader = new InputStreamReader(stream, StandardCharsets.UTF_8);
+ BufferedReader reader = new BufferedReader(inputStreamReader)) {
+ String line = reader.readLine();
+ while (line != null) {
+ String[] lineSplit = line.split("=");
+ if (lineSplit.length >= 2) {
+ String[] externalSplit = lineSplit[0].split(",");
+ String[] internalSplit = lineSplit[1].split(",");
+ if (externalSplit.length >= 1 && internalSplit.length >= 1) {
+ for (String external : externalSplit) {
+ inbound.put(external.trim(), internalSplit[0].trim());
+ }
+ for (String internal : internalSplit) {
+ outbound.put(internal.trim(), externalSplit[0].trim());
+ }
}
}
+ line = reader.readLine();
}
- line = reader.readLine();
}
- reader.close();
}
}
http://git-wip-us.apache.org/repos/asf/knox/blob/7c22f02a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
index 5a28238..23e9380 100644
--- a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
+++ b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
@@ -127,10 +127,8 @@ public class TestUtils {
public static void awaitPortOpen( InetSocketAddress address, int timeout, int delay ) throws InterruptedException {
long maxTime = System.currentTimeMillis() + timeout;
do {
- try {
- Socket socket = new Socket();
+ try (Socket socket = new Socket()) {
socket.connect( address, delay );
- socket.close();
return;
} catch ( IOException e ) {
//e.printStackTrace();