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 "Nandana Mihindukulasooriya (JIRA)" <ji...@apache.org> on 2008/12/16 15:54:44 UTC
[jira] Created: (AXIS2-4179) Make PolicySubject of AxisDescription
thread-safe
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
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.
[jira] Updated: (AXIS2-4179) Make PolicySubject of AxisDescription
thread-safe
Posted by "Nandana Mihindukulasooriya (JIRA)" <ji...@apache.org>.
[ 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.