No sure I'm getting what you're saying.
By default Axis2 creates a new HttpClient instance and a new
HttpConnectionManager instance on every invocations. So multiple invocations
should have step on each other in the default case. That's why I said
MultiThreadedHttpConnectionManager seems overkill to me.

>
Alexis


On Wed, Mar 25, 2009 at 3:11 AM, Dobri Kitipov <kdobrik.ax...@googlemail.com
> wrote:

> Hi everybody,
> I am not sure that the default ConnectionManager should be changed from
> MultiThreadedHttpConnectionManager to SimpleHttpConnectionManager. What
> about asynchronous MEPs? I have not tested this, but I suppose that if a
> given async client does several invocations then if *NO*
> MultiThreadedHttpConnectionManager is in use (i.e. there is no connection
> pool) then the NON-blocking mechanism will be corrupted?
>
> Dobri
>
>
> On Tue, Mar 24, 2009 at 6:40 PM, Alexis Midon <mi...@intalio.com> wrote:
>
>> +1 on this. I'm fine with the current behavior regarding HttpClient
>> management.
>> My only request would be to not instanciate a
>> MultiThreadedHttpConnectionManager in the default case. A
>> SimpleHttpConnectionManager would be good enough. I agree it's close to be a
>> detail but still.
>>
>> Alexis
>>
>>
>>
>> On Mon, Mar 23, 2009 at 9:20 PM, Amila Suriarachchi <
>> amilasuriarach...@gmail.com> wrote:
>>
>>>
>>>
>>> On Tue, Mar 24, 2009 at 4:16 AM, Alexis Midon <mi...@intalio.com> wrote:
>>>
>>>>
>>>> It's already possible to reuse the HttpClient and with your own
>>>> HttpConnectionManager. What you have to do is create the HttpClient by
>>>> yourself with your connection manager and push it in the MessageContext.
>>>
>>>
>>> I think this is a good point.
>>> So if we set both HTTPConstants.REUSE_HTTP_CLIENT,
>>> HTTPConstants.CACHED_HTTP_CLIENT then ultimately transport sender use that
>>> client.
>>> This means users can manage the way they need to use the httpClient at
>>> application level. either they can use one httpClient for all the messages
>>> or kept the HttpState at thread local.
>>> So IMHO since this is a performance fine tuning,  it is ok to keep it in
>>> this way and let users to mange it in the way they need at application
>>> level.
>>>
>>> thanks,
>>> Amila.
>>>
>>>>
>>>>
>>>> Alexis
>>>>
>>>>
>>>>
>>>> On Sun, Mar 22, 2009 at 3:52 AM, Amila Suriarachchi <
>>>> amilasuriarach...@gmail.com> wrote:
>>>>
>>>>> hi all,
>>>>>
>>>>> recently I came across this link and according to this[1] creating new
>>>>> http client for every request is not good
>>>>> in performance wise.
>>>>>
>>>>> Current get Http client method looks like this
>>>>>
>>>>> protected HttpClient getHttpClient(MessageContext msgContext) {
>>>>>         HttpClient httpClient;
>>>>>         Object reuse =
>>>>> msgContext.getOptions().getProperty(HTTPConstants.REUSE_HTTP_CLIENT);
>>>>>         if (reuse == null) {
>>>>>             reuse =
>>>>> msgContext.getConfigurationContext().getProperty(HTTPConstants.REUSE_HTTP_CLIENT);
>>>>>         }
>>>>>         if (reuse != null && JavaUtils.isTrueExplicitly(reuse)) {
>>>>>             httpClient = (HttpClient)
>>>>> msgContext.getOptions().getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
>>>>>             if (httpClient == null) {
>>>>>                 httpClient = (HttpClient)
>>>>> msgContext.getConfigurationContext()
>>>>>                         .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
>>>>>             }
>>>>>             if (httpClient != null)
>>>>>                 return httpClient;
>>>>>             MultiThreadedHttpConnectionManager connectionManager =
>>>>>                 new MultiThreadedHttpConnectionManager();
>>>>>             httpClient = new HttpClient(connectionManager);
>>>>>             msgContext.getConfigurationContext()
>>>>>                 .setProperty(HTTPConstants.CACHED_HTTP_CLIENT,
>>>>> httpClient);
>>>>>         } else {
>>>>>             HttpConnectionManager connManager =
>>>>>                     (HttpConnectionManager) msgContext.getProperty(
>>>>>
>>>>> HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
>>>>>             if (connManager == null) {
>>>>>                 connManager =
>>>>>                         (HttpConnectionManager) msgContext.getProperty(
>>>>>
>>>>> HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER);
>>>>>             }
>>>>>             if(connManager != null){
>>>>>                 httpClient = new HttpClient(connManager);
>>>>>             } else {
>>>>>                 //Multi threaded http connection manager has set as the
>>>>> default
>>>>>                 connManager = new MultiThreadedHttpConnectionManager();
>>>>>                 httpClient = new HttpClient(connManager);
>>>>>             }
>>>>>         }
>>>>>
>>>>>         // Get the timeout values set in the runtime
>>>>>         initializeTimeouts(msgContext, httpClient);
>>>>>         return httpClient;
>>>>>     }
>>>>>
>>>>> According to the above article creating many http client instances are
>>>>> not efficient. But if a user switch on the
>>>>> HTTPConstants.REUSE_HTTP_CLIENT then he can not give an
>>>>> MultiThreadedHttpConnectionManager object where users can define maximum
>>>>> pool size, host configurations etc...
>>>>>
>>>>> Therefore I think it is better to have these features,
>>>>>
>>>>> 1. Let users to create the MultiThreadedHttpConnectionManager with its
>>>>> own even when reusing http client.
>>>>> 2. Does Http Client thread safe? if not we need to keep the cache copy
>>>>> of the httpClient in a thread local variable.
>>>>>
>>>>> Does any one knows how to switch on the keep alive and will it make any
>>>>> performance improvement?
>>>>>
>>>>> Anyway I still believe releasing connections  should be done at the
>>>>> user level since it degradates the performance.
>>>>>
>>>>> thanks,
>>>>> Amila.
>>>>>
>>>>>
>>>>> [1] http://hc.apache.org/httpclient-3.x/performance.html
>>>>>
>>>>>
>>>>> On Tue, Mar 10, 2009 at 2:26 AM, Andreas Veithen <
>>>>> andreas.veit...@gmail.com> wrote:
>>>>>
>>>>>> I agree that we also need to consider OperationClient and the
>>>>>> non-blocking methods. I think that the first step towards a solid
>>>>>> solution is actually to write a couple of test cases that provide
>>>>>> evidence for these issues and that we can later use for regression
>>>>>> testing, but I will have to review the existing unit tests we have.
>>>>>>
>>>>>> Andreas
>>>>>>
>>>>>> On Wed, Mar 4, 2009 at 01:21, Alexis Midon <mi...@intalio.com> wrote:
>>>>>> > Another case where "Options#setCallTransportCleanup for
>>>>>> OperationClient" is
>>>>>> > obvious is when you call OperationClient#execute in a non-blocking
>>>>>> way.
>>>>>> > The caller cannot clean up the transport safely, because the
>>>>>> execution might
>>>>>> > still be in progress. In that case it's OperationClient
>>>>>> responsability to
>>>>>> > clean up the transport.
>>>>>> >
>>>>>> > Alexis
>>>>>> >
>>>>>> >
>>>>>> > On Mon, Mar 2, 2009 at 10:11 AM, Alexis Midon <mi...@intalio.com>
>>>>>> wrote:
>>>>>> >>
>>>>>> >> There is still some inconsistencies between how
>>>>>> ServiceClient#sendReceive
>>>>>> >> and Operation#execute use Options#getCallTransportCleanup.
>>>>>> >>
>>>>>> >> And I think that would help a lot if the related jira issues get
>>>>>> cleaned
>>>>>> >> up a little bit.
>>>>>> >>
>>>>>> >> Thanks for your time and feedback.
>>>>>> >>
>>>>>> >> Alexis
>>>>>> >>
>>>>>> >>
>>>>>> >> On Sun, Mar 1, 2009 at 9:02 PM, Amila Suriarachchi
>>>>>> >> <amilasuriarach...@gmail.com> wrote:
>>>>>> >>>
>>>>>> >>> hi all,
>>>>>> >>>
>>>>>> >>> On Fri, Feb 27, 2009 at 6:35 PM, Andreas Veithen
>>>>>> >>> <andreas.veit...@gmail.com> wrote:
>>>>>> >>>>
>>>>>> >>>> I think that callTransportCleanup should never be turned on by
>>>>>> default
>>>>>> >>>> because it would disable deferred parsing of the response. What
>>>>>> needs
>>>>>> >>>> to be done urgently is to improve the documentation of the
>>>>>> >>>> ServiceClient class to make it clear that it is mandatory to
>>>>>> either
>>>>>> >>>> call cleanupTransport explicitly or to set callTransportCleanup
>>>>>> to
>>>>>> >>>> true. Also the cleanupTransport method itself doesn't have any
>>>>>> >>>> Javadoc.
>>>>>> >>>
>>>>>> >>> thanks for in-depth analysing  of this issue. If the issue is not
>>>>>> calling
>>>>>> >>> to transport clean up then I clearly agree with what Andreas.
>>>>>> >>>
>>>>>> >>> Axis2 uses deffered building. There when the user gets the
>>>>>> response
>>>>>> >>> OMElement it has not build and Axis2 does not know when he going
>>>>>> to finish
>>>>>> >>> with it. So it is responsibility of the user to call the transport
>>>>>> clean up
>>>>>> >>> once they have done with the OMElement.
>>>>>> >>>
>>>>>> >>> But this problem does not occur with the generated data bind code.
>>>>>> There
>>>>>> >>> before returning from the stub method it generates the all the
>>>>>> databinding
>>>>>> >>> classes. In the generated code finally method calls
>>>>>> >>>
>>>>>> _messageContext.getTransportOut().getSender().cleanup(_messageContext);
>>>>>> >>>
>>>>>> >>> to clean up the transport.
>>>>>> >>>
>>>>>> >>> thanks,
>>>>>> >>> Amila.
>>>>>> >>>>
>>>>>> >>>> Andreas
>>>>>> >>>>
>>>>>> >>>> On Fri, Feb 27, 2009 at 12:19, Dobri Kitipov
>>>>>> >>>> <kdobrik.ax...@googlemail.com> wrote:
>>>>>> >>>> > Hi Andreas,
>>>>>> >>>> > thank you for the comment. I think you get the question.
>>>>>> >>>> > Quick test shows that setting the following line of code into
>>>>>> the
>>>>>> >>>> > client:
>>>>>> >>>> >
>>>>>> >>>> > options.setCallTransportCleanup(true);
>>>>>> >>>> >
>>>>>> >>>> > forces the closure of the http connection. It seems it is not
>>>>>> the
>>>>>> >>>> > default
>>>>>> >>>> > behavior. This is a good and fast solution. I was a little bit
>>>>>> more
>>>>>> >>>> > focused
>>>>>> >>>> > on wondering why I have such a difference b/n using SOAP and
>>>>>> MIME
>>>>>> >>>> > builder.
>>>>>> >>>> >
>>>>>> >>>> > I need to think about some use cases when we need to have
>>>>>> >>>> > options.setCallTransportCleanup(false). Can we have this by
>>>>>> default in
>>>>>> >>>> > some
>>>>>> >>>> > cases?
>>>>>> >>>> >
>>>>>> >>>> > Anyway, it will be worth having a further analysis of the issue
>>>>>> we
>>>>>> >>>> > have with
>>>>>> >>>> > SOAPBuilder behavior.
>>>>>> >>>> >
>>>>>> >>>> > Thank you,
>>>>>> >>>> > Dobri
>>>>>> >>>> >
>>>>>> >>>> >
>>>>>> >>>> > On Fri, Feb 27, 2009 at 12:46 PM, Andreas Veithen
>>>>>> >>>> > <andreas.veit...@gmail.com> wrote:
>>>>>> >>>> >>
>>>>>> >>>> >> If I understand correctly, Dobri's findings can be summarized
>>>>>> as
>>>>>> >>>> >> follows:
>>>>>> >>>> >> 1. Once the InputStream is consumed, commons-httpclient
>>>>>> automatically
>>>>>> >>>> >> releases the connection.
>>>>>> >>>> >> 2. SOAPBuilder never completely consumes the InputStream.
>>>>>> >>>> >>
>>>>>> >>>> >> The SOAPBuilder behavior is indeed somewhat questionable, but
>>>>>> it is
>>>>>> >>>> >> important to understand that because of the deferred parsing
>>>>>> model
>>>>>> >>>> >> used by Axiom, there is never a guarantee that the InputStream
>>>>>> will
>>>>>> >>>> >> be
>>>>>> >>>> >> completely consumed. Normally releasing the connection is the
>>>>>> >>>> >> responsibility of the CommonsHTTPTransportSender#cleanup
>>>>>> method which
>>>>>> >>>> >> should be called by ServiceClient#cleanupTransport. It would
>>>>>> be
>>>>>> >>>> >> interesting to know if that method is called, and if it is,
>>>>>> why it
>>>>>> >>>> >> fails to release the connection.
>>>>>> >>>> >>
>>>>>> >>>> >> Andreas
>>>>>> >>>> >>
>>>>>> >>>> >> On Fri, Feb 27, 2009 at 10:10, Dobri Kitipov
>>>>>> >>>> >> <kdobrik.ax...@googlemail.com> wrote:
>>>>>> >>>> >> > Hi all,
>>>>>> >>>> >> > I have observed absolutely the same thing these days. I need
>>>>>> some
>>>>>> >>>> >> > more
>>>>>> >>>> >> > time
>>>>>> >>>> >> > to analyze the whole picture, but here is my current
>>>>>> synthesis of
>>>>>> >>>> >> > the
>>>>>> >>>> >> > issue.
>>>>>> >>>> >> >
>>>>>> >>>> >> > It seems that http connection release is tightly coupled
>>>>>> with the
>>>>>> >>>> >> > Axis2
>>>>>> >>>> >> > builder used to handle and process the response body and the
>>>>>> >>>> >> > corresponding
>>>>>> >>>> >> > input streams used. The builder and the InputStream used are
>>>>>> based
>>>>>> >>>> >> > on
>>>>>> >>>> >> > the
>>>>>> >>>> >> > HTTP headers fields like "Content-Type" and
>>>>>> "Transfer-Encoding"
>>>>>> >>>> >> > (e.g.
>>>>>> >>>> >> > Content-Type: text/xml; charset=UTF-8  Transfer-Encoding:
>>>>>> chunked).
>>>>>> >>>> >> > So
>>>>>> >>>> >> > if we
>>>>>> >>>> >> > have Content-Type: text/xml; then SOAPBuilder class will be
>>>>>> used.
>>>>>> >>>> >> > If we
>>>>>> >>>> >> > have  type="application/xop+xml" then MIMEBuilder will be
>>>>>> used.
>>>>>> >>>> >> >
>>>>>> >>>> >> > The successfull story when we have MIMIBuilder:
>>>>>> >>>> >> >
>>>>>> >>>> >> > When MIMEBuilder is used then the response Buffered
>>>>>> InputStream
>>>>>> >>>> >> > (IS) is
>>>>>> >>>> >> > wrrapped (I will use "->" sign as substitution for wrrapped)
>>>>>> >>>> >> > ChunkedIS
>>>>>> >>>> >> > ->
>>>>>> >>>> >> > AutoCloseIS (this has a responseConsumed() method notified
>>>>>> when
>>>>>> >>>> >> > IS.read()
>>>>>> >>>> >> > returns -1, which means that the response IS has been
>>>>>> completely
>>>>>> >>>> >> > read)
>>>>>> >>>> >> > ->
>>>>>> >>>> >> > PushBackIS ->BounderyPushBackIS. The BounderyPushBackIS
>>>>>> reads the
>>>>>> >>>> >> > response
>>>>>> >>>> >> > stream (see readFromStream(....)) in a cycle till it reaches
>>>>>> its
>>>>>> >>>> >> > end. At
>>>>>> >>>> >> > every iteration of this cycle a AutoCloseIS checkClose(l) is
>>>>>> >>>> >> > invoked. So
>>>>>> >>>> >> > when the end is reached (-1 is returned) then this check
>>>>>> causes the
>>>>>> >>>> >> > invokation of the AutoCloseIS checkClose(...)  method. This
>>>>>> method
>>>>>> >>>> >> > invokes
>>>>>> >>>> >> > notifyWatcher() that in turn invokes responseBodyConsumed()
>>>>>> method
>>>>>> >>>> >> > of
>>>>>> >>>> >> > the
>>>>>> >>>> >> > HttpMethodBase class. This causes the release of the http
>>>>>> >>>> >> > connection
>>>>>> >>>> >> > which
>>>>>> >>>> >> > is returned back to the connection pool. So here we have no
>>>>>> problem
>>>>>> >>>> >> > with
>>>>>> >>>> >> > connection reuse.
>>>>>> >>>> >> >
>>>>>> >>>> >> > The bad story we have with SOAPBuilder:
>>>>>> >>>> >> >
>>>>>> >>>> >> > When SOAPBuilder is used then the response Buffered
>>>>>> InputStream is
>>>>>> >>>> >> > wrrapped
>>>>>> >>>> >> > in a ChunkedIS -> AutoCloseIS -> PushBackIS. May be you has
>>>>>> noticed
>>>>>> >>>> >> > that
>>>>>> >>>> >> > BounderyPushBackIS is not used. As a result the respose IS
>>>>>> is not
>>>>>> >>>> >> > completely
>>>>>> >>>> >> > read (in fact this is not really correct, it could be read
>>>>>> but the
>>>>>> >>>> >> > invokation of the PushBackIS unread(...) method causes the
>>>>>> >>>> >> > AutoCloseIS
>>>>>> >>>> >> > checkClose() method never to return -1). As a result the
>>>>>> http
>>>>>> >>>> >> > connection
>>>>>> >>>> >> > is
>>>>>> >>>> >> > not released. And since there is a limit to have 2
>>>>>> connection per
>>>>>> >>>> >> > host
>>>>>> >>>> >> > then after the second invokation of the WS client the thread
>>>>>> hangs
>>>>>> >>>> >> > waiting
>>>>>> >>>> >> > for a free connection.
>>>>>> >>>> >> >
>>>>>> >>>> >> > Please, provide us with your comments on this issue.
>>>>>> >>>> >> >
>>>>>> >>>> >> > Thank you in advance.
>>>>>> >>>> >> >
>>>>>> >>>> >> > Regards,
>>>>>> >>>> >> > Dobri
>>>>>> >>>> >> >
>>>>>> >>>> >> > On Fri, Feb 27, 2009 at 3:54 AM, Alexis Midon <
>>>>>> mi...@intalio.com>
>>>>>> >>>> >> > wrote:
>>>>>> >>>> >> >>
>>>>>> >>>> >> >> no taker for an easy patch?
>>>>>> >>>> >> >>
>>>>>> >>>> >> >> Alexis
>>>>>> >>>> >> >>
>>>>>> >>>> >> >>
>>>>>> >>>> >> >> On Wed, Feb 25, 2009 at 6:45 PM, Alexis Midon <
>>>>>> mi...@intalio.com>
>>>>>> >>>> >> >> wrote:
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> Hi everyone,
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> All the issues relatives to AXIS2-935 are really messy,
>>>>>> some of
>>>>>> >>>> >> >>> them
>>>>>> >>>> >> >>> are
>>>>>> >>>> >> >>> closed but their clones are not. Some are flagged as fixed
>>>>>> but
>>>>>> >>>> >> >>> are
>>>>>> >>>> >> >>> obviously
>>>>>> >>>> >> >>> not. All these issues are really old, so I'd like to take
>>>>>> a
>>>>>> >>>> >> >>> chance to
>>>>>> >>>> >> >>> bring
>>>>>> >>>> >> >>> them back to your attention, especially before releasing
>>>>>> 1.5.
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> I'll post a description of the issue in this email as a
>>>>>> summary
>>>>>> >>>> >> >>> all
>>>>>> >>>> >> >>> the
>>>>>> >>>> >> >>> jiras.
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> By default, ServiceClient uses one HttpConnectionManager
>>>>>> per
>>>>>> >>>> >> >>> invocation
>>>>>> >>>> >> >>> [2]. This connection manager will create and provide one
>>>>>> >>>> >> >>> connection to
>>>>>> >>>> >> >>> HTTPSender. The first issue is that by default this
>>>>>> connection is
>>>>>> >>>> >> >>> never
>>>>>> >>>> >> >>> released to the pool [3]. if you do zillions of
>>>>>> invocations, this
>>>>>> >>>> >> >>> leak
>>>>>> >>>> >> >>> will
>>>>>> >>>> >> >>> max out your number of file descriptors.
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> Your investigations in Axis2 options quickly lead you to
>>>>>> the
>>>>>> >>>> >> >>> REUSE_HTTP_CLIENT option. But this first issue has some
>>>>>> >>>> >> >>> unfortunate
>>>>>> >>>> >> >>> consequences if you activate it. Actually if you do so, a
>>>>>> single
>>>>>> >>>> >> >>> connection
>>>>>> >>>> >> >>> manager is shared across all invocations. But because
>>>>>> connections
>>>>>> >>>> >> >>> are
>>>>>> >>>> >> >>> not
>>>>>> >>>> >> >>> release, the pool is starved after two invocations, and
>>>>>> the third
>>>>>> >>>> >> >>> invocation
>>>>>> >>>> >> >>> hangs out indefinitely. :(
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> If you keep digging you will find the
>>>>>> AUTO_RELEASE_CONNECTION
>>>>>> >>>> >> >>> option.
>>>>>> >>>> >> >>> Its
>>>>>> >>>> >> >>> sounds like a good lead! Let's try it. If you activate
>>>>>> this
>>>>>> >>>> >> >>> option the
>>>>>> >>>> >> >>> connection is properly released -Yahoooo! the leak is
>>>>>> fixed - but
>>>>>> >>>> >> >>> unfortunately a new issue shows up (issue #2, aka
>>>>>> AXIS2-3478).
>>>>>> >>>> >> >>> AbstractHTTPSender passes the stream of the connection to
>>>>>> the
>>>>>> >>>> >> >>> message
>>>>>> >>>> >> >>> context [4] , but that the connection is now properly
>>>>>> released,
>>>>>> >>>> >> >>> so
>>>>>> >>>> >> >>> this
>>>>>> >>>> >> >>> stream is closed before the SOAPBuilder gets a chance to
>>>>>> read the
>>>>>> >>>> >> >>> response
>>>>>> >>>> >> >>> body.
>>>>>> >>>> >> >>> Boom! "IOException: Attempted read on closed stream"
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> These issues are easily reproducible in versions 1.3, 1.4,
>>>>>> 1.5.
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> I submitted and documented a fix in AXIS2-2931 [5], if you
>>>>>> had a
>>>>>> >>>> >> >>> chance
>>>>>> >>>> >> >>> to look at it that would be much appreciate.
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> Alexis
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>> [1]
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> https://issues.apache.org/jira/browse/AXIS2-935?focusedCommentId=12513543#action_12513543
>>>>>> >>>> >> >>> [2] see method getHttpClient in
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> https://svn.apache.org/repos/asf/webservices/commons/trunk/modules/transport/modules/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
>>>>>> >>>> >> >>> [3] see method cleanup in
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> https://svn.apache.org/repos/asf/webservices/commons/trunk/modules/transport/modules/http/src/org/apache/axis2/transport/http/HTTPSender.java
>>>>>> >>>> >> >>> [4] see method processResponse in AbstractHTTPSender.java
>>>>>> >>>> >> >>> [5]
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> >>>> >> >>>
>>>>>> https://issues.apache.org/jira/browse/AXIS2-2931?focusedCommentId=12676837#action_12676837
>>>>>> >>>> >> >>
>>>>>> >>>> >> >
>>>>>> >>>> >> >
>>>>>> >>>> >
>>>>>> >>>> >
>>>>>> >>>
>>>>>> >>>
>>>>>> >>>
>>>>>> >>> --
>>>>>> >>> Amila Suriarachchi
>>>>>> >>> WSO2 Inc.
>>>>>> >>> blog: http://amilachinthaka.blogspot.com/
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Amila Suriarachchi
>>>>> WSO2 Inc.
>>>>> blog: http://amilachinthaka.blogspot.com/
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Amila Suriarachchi
>>> WSO2 Inc.
>>> blog: http://amilachinthaka.blogspot.com/
>>>
>>
>>
>

Reply via email to