I updated our XTest method to account for nested exceptions. The new test
results show 1400 more EXPECTED_ERROR_GOT_SAME_ERROR results.

Side Node:
 - HyracksDataException extends HyracksException which extends IOException
 - AlgebricksException extends Exception

It may not be possible without changes to Hyracks to remove the nested
exceptions.

On Thu, Feb 19, 2015 at 6:15 AM, Till Westmann <[email protected]> wrote:

> I think that throwing them is fine.
> The problem might be that they are too deeply nested into other exceptions
> that we need to wrap around them in order to work well with the
> Hyracks/Algebricks interfaces.
> If that's the problem we could either unwrap them or derive our exceptions
> from the Hyracks/Algebricks exceptions.
> However, we probably need more investigation to find out if deriving the
> exceptions would solve the problem.
>
> Cheers,
> Till
>
>
> On 18 Feb 2015, at 21:49, Eldon Carman wrote:
>
>  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.SuperActivityOperatorNodePusha
>> ble.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.AbstractTaggedValueArgumentSca
>> larEvaluator.evaluate(AbstractTaggedValueArgumentScalarEvaluator.java:52)
>> at
>> org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentSca
>> larEvaluator.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.AbstractTaggedValueArgumentSca
>> larEvaluator.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