You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by am...@apache.org on 2023/04/28 10:17:43 UTC
[knox] branch master updated: KNOX-2905 - GatewayDescriptorImporter is not thread safe (#753)
This is an automated email from the ASF dual-hosted git repository.
amagyar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new 7dba8c01b KNOX-2905 - GatewayDescriptorImporter is not thread safe (#753)
7dba8c01b is described below
commit 7dba8c01bc3a966c7cabdcad26195d169026ac9a
Author: Attila Magyar <m....@gmail.com>
AuthorDate: Fri Apr 28 12:17:38 2023 +0200
KNOX-2905 - GatewayDescriptorImporter is not thread safe (#753)
---
.../java/org/apache/knox/gateway/GatewayServlet.java | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
index 3621bb66b..a1109d850 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
@@ -185,13 +185,8 @@ public class GatewayServlet implements Servlet, Filter {
private static GatewayFilter createFilter( InputStream stream, ServletContext servletContext ) throws ServletException {
try {
GatewayFilter filter = null;
- if( stream != null ) {
- try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)){
- GatewayDescriptor descriptor = GatewayDescriptorFactory.load("xml", reader);
- filter = GatewayFactory.create( descriptor );
- } finally {
- stream.close();
- }
+ if (stream != null) {
+ filter = GatewayFactory.create(createGatewayDescriptor(stream));
}
GatewayConfig gatewayConfig = (GatewayConfig) servletContext.getAttribute(GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE);
if (gatewayConfig.isMetricsEnabled()) {
@@ -210,6 +205,14 @@ public class GatewayServlet implements Servlet, Filter {
}
}
+ private static synchronized GatewayDescriptor createGatewayDescriptor(InputStream stream) throws IOException {
+ try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)){
+ return GatewayDescriptorFactory.load("xml", reader);
+ } finally {
+ stream.close();
+ }
+ }
+
private static GatewayFilter createFilter( FilterConfig filterConfig ) throws ServletException {
GatewayFilter filter;
InputStream stream;