axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sandeep Balasaheb Andre (JIRA)" <axis-...@ws.apache.org>
Subject [jira] [Commented] (AXIS-2540) Multiple threads can modify targetURL in HTTPSender
Date Mon, 07 Nov 2016 17:28:58 GMT

    [ https://issues.apache.org/jira/browse/AXIS-2540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15644798#comment-15644798
] 

Sandeep Balasaheb Andre commented on AXIS-2540:
-----------------------------------------------

Hi, 

I am facing this issue on my Axis client as well. The Target Endpoint is getting overwritten
in multithreaded environment. I looked into Axis 1.4 code and found out that in Service class
if Transport type is same, service object will use same Transport object. So if URL is changed
by another thread, it affects the previous Axis calls which had different URL. I think setTargetEndpoint
method in Axis call method is causing this issue. 

Let me know if my issue is similar to this one. 

Thanks.

> Multiple threads can modify targetURL in HTTPSender
> ---------------------------------------------------
>
>                 Key: AXIS-2540
>                 URL: https://issues.apache.org/jira/browse/AXIS-2540
>             Project: Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.4
>         Environment: all platforms
>            Reporter: Muruga Chinnananchi
>            Priority: Critical
>              Labels: thread-safety
>         Attachments: ASF.LICENSE.NOT.GRANTED--HTTPSender.java
>
>
> the targetURL in HTTPSender is shared by multiple threads, in a highly concurrent and
multi-threaded environment, and multiple threads modifies the targetURL and the messages endup
going to wrong endpoint. 
> Our customers experienced this problem in production environment and we created a simple
test case to reproduce this, just place Thread.sleep(1000) right before calling writeToSocket
( ) and try to send messages from multiple threads to different endpoints. you would notice
the messages going to wrong endpoints.
> Fix: Remove the targetURL instance variable in HTTPSender.java and make it local to the
public void invoke(MessageContext msgContext) throws AxisFault method. I am attaching the
fixed HTTPSender.java. I fixed it on top of 1.4 release source. I thought it would benefit
others who uses wsif-axis in multi-threaded environment.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message