[ 
https://issues.apache.org/jira/browse/AXIS2-4179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nandana Mihindukulasooriya updated AXIS2-4179:
----------------------------------------------

    Attachment: AXIS2-4179.patch

Proposed Solution :
Use a ConcurrentHashMap instead of a HashMap in the PolicySubject class. 

> Make PolicySubject of AxisDescription thread-safe 
> --------------------------------------------------
>
>                 Key: AXIS2-4179
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4179
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>            Reporter: Nandana Mihindukulasooriya
>            Assignee: Nandana Mihindukulasooriya
>         Attachments: AXIS2-4179.patch
>
>
> Each AxisDescription instance (AxisService, AxisOperation, etc.) has a 
> "PolicySubject" field containing the policy components (policy, policy 
> reference) attached at that subject. The problem is that this PolicySubject 
> class is not thread safe - it maintains a HashMap with all policy components 
> (mapped by their id). So when users are somehow modifying the policy of a 
> subject (attaching new components or removing some) if meanwhile a service 
> execution calls MessageContext.getEffectivePolicy(), which iterates over the 
> policy components, a ConcurrentModificationException is thrown. In that case 
> the service invocation will fail and a fault will be send to the client. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to