This is an automated email from the ASF dual-hosted git repository. robertlazarski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
The following commit(s) were added to refs/heads/master by this push: new d663fc5038 AXIS2-6030 Axis2 connections are not returned to connection pool on 1.8.0 with JAXWS d663fc5038 is described below commit d663fc5038d2eeb85c63108cf17b59fcd34e8be7 Author: Robert Lazarski <robertlazar...@gmail.com> AuthorDate: Mon Feb 10 18:04:26 2025 -1000 AXIS2-6030 Axis2 connections are not returned to connection pool on 1.8.0 with JAXWS --- .../jaxws/client/proxy/JAXWSProxyHandler.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java b/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java index e2d8b359b4..e33262eda4 100644 --- a/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java +++ b/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java @@ -58,6 +58,7 @@ import jakarta.xml.ws.Response; import jakarta.xml.ws.WebServiceException; import jakarta.xml.ws.WebServiceFeature; import jakarta.xml.ws.soap.SOAPBinding; +import java.io.InputStream; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -65,6 +66,8 @@ import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import java.util.Iterator; +import java.util.Map; /** * ProxyHandler is the java.lang.reflect.InvocationHandler implementation. When a JAX-WS client @@ -567,6 +570,7 @@ public class JAXWSProxyHandler extends BindingProvider implements // Free incoming stream try { responseContext.freeInputStream(); + closeInputStream(responseContext); } catch (Throwable t) { throw ExceptionFactory.makeWebServiceException(t); @@ -574,6 +578,28 @@ public class JAXWSProxyHandler extends BindingProvider implements } } + private void closeInputStream(MessageContext responseContext) { + // accessing the input stream is not possible via get + // workaround using entry set + Iterator var2 = responseContext.getMEPContext().entrySet().iterator(); + + while(var2.hasNext()) { + Object entry = var2.next(); + if (entry instanceof Map.Entry && "TRANSPORT_IN".equals(((Map.Entry)entry).getKey())) { + Object prop = ((Map.Entry)entry).getValue(); + if (prop instanceof InputStream) { + try { + InputStream inputStream = (InputStream)prop; + inputStream.close(); + } catch (Exception var6) { + log.error(var6.getMessage(), var6); + } + } + break; + } + } + } + protected static Throwable getFaultResponse(MessageContext msgCtx, OperationDescription opDesc) { Message msg = msgCtx.getMessage();