You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ve...@apache.org on 2005/06/02 08:47:04 UTC

cvs commit: ws-axis/java/src/org/apache/axis/transport/http HTTPSender.java

venkat      2005/06/01 23:47:04

  Modified:    java/src/org/apache/axis/transport/http HTTPSender.java
  Log:
  Patch from Jaya for AXIS-2008.
  
  Revision  Changes    Path
  1.128     +13 -2     ws-axis/java/src/org/apache/axis/transport/http/HTTPSender.java
  
  Index: HTTPSender.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/transport/http/HTTPSender.java,v
  retrieving revision 1.127
  retrieving revision 1.128
  diff -u -r1.127 -r1.128
  --- HTTPSender.java	31 May 2005 19:46:13 -0000	1.127
  +++ HTTPSender.java	2 Jun 2005 06:47:03 -0000	1.128
  @@ -124,14 +124,15 @@
           if (log.isDebugEnabled()) {
               log.debug(Messages.getMessage("enter00", "HTTPSender::invoke"));
           }
  +
  +        SocketHolder socketHolder = new SocketHolder(null);
  +
           try {
               BooleanHolder useFullURL = new BooleanHolder(false);
               StringBuffer otherHeaders = new StringBuffer();
               targetURL = new URL(msgContext.getStrProp(MessageContext.TRANS_URL));
               String host = targetURL.getHost();
               int port = targetURL.getPort();
  -
  -            SocketHolder socketHolder = new SocketHolder(null);
               
               // Send the SOAP request to the server
               InputStream inp = writeToSocket(socketHolder, msgContext, targetURL,
  @@ -143,6 +144,16 @@
               readFromSocket(socketHolder, msgContext, inp, headers);
           } catch (Exception e) {
               log.debug(e);
  +            //fix for AXIS-2008
  +            try {
  +	            if (socketHolder.getSocket() != null && !socketHolder.getSocket().isClosed()) {
  +	            	socketHolder.getSocket().close();
  +	            }
  +            } catch (IOException ie) {
  +            	// we have already made a check if socket exists and is not already closed, so
  +            	// we would never end up here. But for compilation purposes had to add this
  +            	// internal try catch block.
  +            }
               throw AxisFault.makeFault(e);
           }
           if (log.isDebugEnabled()) {