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

Karthick Sankarachary resolved ODE-531.
---------------------------------------

    Resolution: Fixed

Thanks to Rafal for identifying and resolving this issue with query evaluation 
that had gone undetected for way too long. Thanks to Mark for identifying the 
right type of standard fault to throw in this particular case (I too believe 
that the root cause of the problem qualifies as an "unhandled fault" as opposed 
to an "inability to select nodes".)  The revised patch has been applied at 
revision 748707. 

I guess that "neat little trick" in the ASSIGN activity wasn't so neat after 
all :-)

> Failing copy from xquery query leads to failing whole job
> ---------------------------------------------------------
>
>                 Key: ODE-531
>                 URL: https://issues.apache.org/jira/browse/ODE-531
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3
>            Reporter: Rafal Rusin
>            Assignee: Karthick Sankarachary
>             Fix For: 1.3
>
>         Attachments: xqueryquery-patch.diff, xqueryquery-testcase.diff
>
>
> I did 
>       <copy>
>                <from variable="myVar" part="TestPart">
>                  <query 
> queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xquery1.0">
>                     let $j := 10 div 0
>                     return concat("abc", $j)
>                  </query>
>                </from>
>                <to variable="myVar" part="TestPart"/>
>              </copy>
> After it, I got:
> 02...@13:27:54 ERROR (JacobVPU.java:463)     - Method "run" in class 
> "org.apache.ode.bpel.runtime.ASSIGN" threw an unexpected exception.
> org.apache.ode.bpel.runtime.InvalidProcessException: Expression Failed: 
> {OXPath10Expression null}
>         at 
> org.apache.ode.bpel.runtime.ExprEvaluationContextImpl.evaluateQuery(ExprEvaluationContextImpl.java:108)
>         at org.apache.ode.bpel.runtime.ASSIGN.evalQuery(ASSIGN.java:619)
>         at org.apache.ode.bpel.runtime.ASSIGN.evalRValue(ASSIGN.java:187)
>         at org.apache.ode.bpel.runtime.ASSIGN.copy(ASSIGN.java:360)
>         at org.apache.ode.bpel.runtime.ASSIGN.run(ASSIGN.java:81)
>         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at 
> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
>         at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
>         at 
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:854)
>         at 
> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:206)
>         at 
> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:220)
>         at 
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392)
>         at 
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:391)
>         at 
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:387)
>         at org.apache.ode.il.MockScheduler.doExecute(MockScheduler.java:265)
>         at org.apache.ode.il.MockScheduler.access$000(MockScheduler.java:46)
>         at org.apache.ode.il.MockScheduler$3$1.call(MockScheduler.java:110)
>         at 
> org.apache.ode.il.MockScheduler.execTransaction(MockScheduler.java:134)
>         at org.apache.ode.il.MockScheduler$4.call(MockScheduler.java:151)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.ode.bpel.explang.EvaluationException: Error while 
> executing an XQuery expression: net.sf.saxon.trans.XPathException: Integer 
> division by zero
>         at 
> org.apache.ode.bpel.elang.xquery10.runtime.XQuery10ExpressionRuntime.evaluate(XQuery10ExpressionRuntime.java:435)
>         at 
> org.apache.ode.bpel.elang.xquery10.runtime.XQuery10ExpressionRuntime.evaluate(XQuery10ExpressionRuntime.java:154)
>         at 
> org.apache.ode.bpel.elang.xquery10.runtime.XQuery10ExpressionRuntime.evaluateNode(XQuery10ExpressionRuntime.java:219)
>         at 
> org.apache.ode.bpel.runtime.ExpressionLanguageRuntimeRegistry.evaluateNode(ExpressionLanguageRuntimeRegistry.java:84)
>         at 
> org.apache.ode.bpel.runtime.ExprEvaluationContextImpl.evaluateQuery(ExprEvaluationContextImpl.java:102)
>         ... 25 more
> Caused by: net.sf.saxon.trans.XPathException: Integer division by zero
>         at net.sf.saxon.value.Int64Value.div(Int64Value.java:575)
>         at 
> net.sf.saxon.expr.Calculator$IntegerDivInteger.compute(Calculator.java:781)
>         at 
> net.sf.saxon.expr.ArithmeticExpression.evaluateItem(ArithmeticExpression.java:292)
>         at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38)
>         at net.sf.saxon.expr.Expression.iterate(Expression.java:370)
>         at 
> net.sf.saxon.query.XQueryExpression.iterator(XQueryExpression.java:307)
>         at 
> net.sf.saxon.xqj.SaxonXQPreparedExpression.executeQuery(SaxonXQPreparedExpression.java:87)
>         at 
> org.apache.ode.bpel.elang.xquery10.runtime.XQuery10ExpressionRuntime.evaluate(XQuery10ExpressionRuntime.java:402)
>         ... 29 more
> which lead to failing the whole job. 
> Instead, there ought to be 'selectionFailure' fault raised. 

-- 
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