[ 
https://issues.apache.org/jira/browse/SYNAPSE-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578059#action_12578059
 ] 

Andreas Veithen commented on SYNAPSE-235:
-----------------------------------------

I think we also have a concurrency issue in the SynapseXPath implementation. It 
seems that Jaxen's XPath objects are thread safe, but obviously if we call 
setFunctionContext or setVariableContext on each invocation of the evaluate 
method, this is no longer the case! There is an interesting discussion around 
that topic here:

http://www.nabble.com/Is-Jaxen-thread-safe--to13382743.html

I added a ThreadSafeDelegatingVariableContext in SVN to solve this issue. The 
idea is to call setVariableContext with an instance of this class in the 
constructor of SynapseXPath and then to call 
ThreadSafeDelegatingVariableContext#setDelegate in the evaluate method. We 
should also use the same pattern with function contexts. This should make 
SynapseXPath thread safe again. We could then also remove the synchronization 
from the getStringValue method.

> Allow XPath expressions to be specified relative to envelope or body via an 
> attribute
> -------------------------------------------------------------------------------------
>
>                 Key: SYNAPSE-235
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-235
>             Project: Synapse
>          Issue Type: Improvement
>            Reporter: Asankha C. Perera
>            Assignee: Ruwan Linton
>             Fix For: 1.2
>
>
> This would make XPath expressions simpler without consideration for SOAP 1.1 
> or 1.2 or REST etc
> Default could be envelope (i.e. what we have now - for backward 
> compatibility), and an optional attribute could specify if it should be 
> relative to the body

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to