Axis2
  1. Axis2
  2. AXIS2-4642

?wsdl query calls out.close() twice, confusing at least some Tomcat connectors

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.5.1
    • Fix Version/s: 1.5.4, 1.6.0
    • Component/s: kernel
    • Labels:
      None
    • Environment:
      Axis2.war deployed in Tomcat 6.0.24, using ajp to jk isapi_redirect to IIS on Windows Server 2008.

      Description

      AxisService.getWSDL() sends the response body for a ..service?wsdl query, then calls .flush() and .close() for its output stream. Upon return, ListingAgent.processListService() calls .flush() and .close() again for the same stream.

      The second close() interferes with the next request on the intermediate ajp connector socket.

      I don't know whether calling close() twice should be harmless but, in this case, it is not.

      [edit: Actually, the 2nd close() is harmelss. It's the flush() coming after the 1st close() that seems to be the problem.]

      1. Axis2Patch-4642.txt
        2 kB
        Anjana Fernando
      2. Axis2Patch-4642-with-javadoc.txt
        8 kB
        Anjana Fernando

        Activity

        Bruce G Stewart created issue -
        Bruce G Stewart made changes -
        Field Original Value New Value
        Labels wsdl
        Bruce G Stewart made changes -
        Description AxisService.getWSDL() sends the response body for a ..service?wsdl query, then calls .flush() and .close() for its output stream. Upon return, ListingAgent.processListService() calls .flush() and .close() again for the same stream.

        The second close() interferes with the next request on the intermediate ajp connector socket.

        I don't know whether calling close() twice should be harmless but, in this case, it is not.
        AxisService.getWSDL() sends the response body for a ..service?wsdl query, then calls .flush() and .close() for its output stream. Upon return, ListingAgent.processListService() calls .flush() and .close() again for the same stream.

        The second close() interferes with the next request on the intermediate ajp connector socket.

        I don't know whether calling close() twice should be harmless but, in this case, it is not.

        [edit: Actually, the 2nd close() is harmelss. It's the flush() coming after the 1st close() that seems to be the problem.]
        Anjana Fernando made changes -
        Attachment Axis2Patch-4642.txt [ 12442563 ]
        Anjana Fernando made changes -
        Attachment Axis2Patch-4642-with-javadoc.txt [ 12442633 ]
        Amila Chinthaka Suriarachchi made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Andreas Veithen made changes -
        Fix Version/s 1.6 [ 12313622 ]
        Andreas Veithen made changes -
        Fix Version/s 1.5.4 [ 12315568 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Bruce G Stewart
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development