I am looking at the testing framework for VXQuery that we use to run XQTS.
I have a question about how to throw SystemExceptions.

Consider the following query that should return XPTY0004 error.

(:*******************************************************:)
(: Test: K-NumericAdd-38                                 :)
(: Written by: Frans Englich                             :)
(: Date: 2007-11-22T11:31:20+01:00                       :)
(: Purpose: Arithmethics involving operands of integer type but with wrong
cardinality. :)
(:*******************************************************:)
empty((1, 2) + ())

The actual exception thrown is the following:

Exception in thread "main"
edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException:
org.apache.vxquery.exceptions.SystemException: XPTY0004: It is a type error
if, during the static analysis phase, an expression is found to have a
static type that is not appropriate for the context in which the expression
occurs, or during the dynamic evaluation phase, the dynamic type of a value
does not match a required type as specified by the matching rules in 2.5.4
SequenceType Matching.
at
edu.uci.ics.hyracks.client.dataset.HyracksDatasetReader.nextPartition(HyracksDatasetReader.java:117)
at
edu.uci.ics.hyracks.client.dataset.HyracksDatasetReader.read(HyracksDatasetReader.java:127)
at org.apache.vxquery.cli.VXQuery.runJob(VXQuery.java:348)
at org.apache.vxquery.cli.VXQuery.runQueries(VXQuery.java:288)
at org.apache.vxquery.cli.VXQuery.execute(VXQuery.java:161)
at org.apache.vxquery.cli.VXQuery.main(VXQuery.java:121)
Caused by: edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException:
org.apache.vxquery.exceptions.SystemException: XPTY0004: It is a type error
if, during the static analysis phase, an expression is found to have a
static type that is not appropriate for the context in which the expression
occurs, or during the dynamic evaluation phase, the dynamic type of a value
does not match a required type as specified by the matching rules in 2.5.4
SequenceType Matching.
at
edu.uci.ics.hyracks.control.common.utils.ExceptionUtils.setNodeIds(ExceptionUtils.java:41)
at edu.uci.ics.hyracks.control.nc.Task.run(Task.java:296)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: edu.uci.ics.hyracks.api.exceptions.HyracksDataException:
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException:
org.apache.vxquery.exceptions.SystemException: XPTY0004: It is a type error
if, during the static analysis phase, an expression is found to have a
static type that is not appropriate for the context in which the expression
occurs, or during the dynamic evaluation phase, the dynamic type of a value
does not match a required type as specified by the matching rules in 2.5.4
SequenceType Matching.
at
edu.uci.ics.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.produceTuple(AssignRuntimeFactory.java:146)
at
edu.uci.ics.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.nextFrame(AssignRuntimeFactory.java:127)
at
edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils.flushFrame(FrameUtils.java:38)
at
edu.uci.ics.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory$1.open(EmptyTupleSourceRuntimeFactory.java:55)
at
edu.uci.ics.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$1.initialize(AlgebricksMetaOperatorDescriptor.java:104)
at
edu.uci.ics.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.initialize(SuperActivityOperatorNodePushable.java:81)
at edu.uci.ics.hyracks.control.nc.Task.run(Task.java:239)
... 3 more
Caused by:
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException:
org.apache.vxquery.exceptions.SystemException: XPTY0004: It is a type error
if, during the static analysis phase, an expression is found to have a
static type that is not appropriate for the context in which the expression
occurs, or during the dynamic evaluation phase, the dynamic type of a value
does not match a required type as specified by the matching rules in 2.5.4
SequenceType Matching.
at
org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator.evaluate(AbstractTaggedValueArgumentScalarEvaluator.java:52)
at
org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator.evaluate(AbstractTaggedValueArgumentScalarEvaluator.java:47)
at
edu.uci.ics.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.produceTuple(AssignRuntimeFactory.java:144)
... 9 more
Caused by: org.apache.vxquery.exceptions.SystemException: XPTY0004: It is a
type error if, during the static analysis phase, an expression is found to
have a static type that is not appropriate for the context in which the
expression occurs, or during the dynamic evaluation phase, the dynamic type
of a value does not match a required type as specified by the matching
rules in 2.5.4 SequenceType Matching.
at
org.apache.vxquery.runtime.functions.arithmetic.AbstractArithmeticScalarEvaluatorFactory$1.evaluate(AbstractArithmeticScalarEvaluatorFactory.java:61)
at
org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator.evaluate(AbstractTaggedValueArgumentScalarEvaluator.java:50)
... 11 more

Is this an issue with our testing software identifying the correct
exception or with VXQuery's method of throwing the SystemException?

Reply via email to