You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Karthick Sankarachary (JIRA)" <ji...@apache.org> on 2009/02/27 22:25:12 UTC

[jira] Resolved: (ODE-531) Failing copy from xquery query leads to failing whole job

     [ 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-27@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.