Merge branch 'ecarm002/exceptions'
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
index 1246141..04d15e7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
@@ -53,7 +53,8 @@
IOperatorSchema[] inputSchemas, JobGenContext context) throws AlgebricksException {
switch (expr.getExpressionTag()) {
case CONSTANT:
- IAlgebricksConstantValue constantValue = (IAlgebricksConstantValue) ((ConstantExpression) expr).getValue();
+ IAlgebricksConstantValue constantValue = (IAlgebricksConstantValue) ((ConstantExpression) expr)
+ .getValue();
if (constantValue.isFalse()) {
IPointable p = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
XDMConstants.setFalse(p);
@@ -81,12 +82,7 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
fcExpr.getArguments());
-
- try {
- return fn.createScalarEvaluatorFactory(argFactories);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ return fn.createScalarEvaluatorFactory(argFactories);
}
throw new UnsupportedOperationException("Cannot create runtime for " + expr.getExpressionTag());
}
@@ -110,11 +106,7 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
expr.getArguments());
- try {
- return fn.createAggregateEvaluatorFactory(argFactories);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ return fn.createAggregateEvaluatorFactory(argFactories);
}
@Override
@@ -139,10 +131,6 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
expr.getArguments());
- try {
- return fn.createUnnestingEvaluatorFactory(argFactories);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ return fn.createUnnestingEvaluatorFactory(argFactories);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
index 39b12b9..fccbc55 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
@@ -19,23 +19,13 @@
import java.text.MessageFormat;
import java.util.Arrays;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.vxquery.util.SourceLocation;
-public class SystemException extends Exception {
+public class SystemException extends AlgebricksException {
private static final long serialVersionUID = 1L;
- private ErrorCode code;
-
- private static String message(ErrorCode code, SourceLocation loc) {
- String description = code.getDescription();
- return code + ": " + (loc == null ? "" : loc + " ") + (description != null ? description : "");
- }
-
- private static String message(ErrorCode code, SourceLocation loc, Object... params) {
- String description = code.getDescription();
- return code + ": " + (loc == null ? "" : loc + " ")
- + (description != null ? MessageFormat.format(description, params) : Arrays.deepToString(params));
- }
+ private final ErrorCode code;
public SystemException(ErrorCode code) {
super(message(code, null));
@@ -65,4 +55,16 @@
public ErrorCode getCode() {
return code;
}
+
+ private static String message(ErrorCode code, SourceLocation loc) {
+ String description = code.getDescription();
+ return code + ": " + (loc == null ? "" : loc + " ") + (description != null ? description : "");
+ }
+
+ private static String message(ErrorCode code, SourceLocation loc, Object... params) {
+ String description = code.getDescription();
+ return code + ": " + (loc == null ? "" : loc + " ")
+ + (description != null ? MessageFormat.format(description, params) : Arrays.deepToString(params));
+ }
+
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
index 965e110..895294a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
@@ -46,11 +46,7 @@
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
- try {
- step(tvps);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ step(tvps);
}
protected abstract void step(TaggedValuePointable[] args) throws SystemException;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
index e0229c2..d7770b0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
@@ -30,7 +30,7 @@
private final IScalarEvaluator[] args;
private final TaggedValuePointable[] tvps;
-
+
protected final PointablePool ppool = PointablePoolFactory.INSTANCE.createPointablePool();
public AbstractTaggedValueArgumentScalarEvaluator(IScalarEvaluator[] args) {
@@ -46,11 +46,7 @@
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
- try {
- evaluate(tvps, result);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ evaluate(tvps, result);
}
protected abstract void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
index 4aa30d7..3db1a0e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
@@ -46,11 +46,7 @@
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
- try {
- init(tvps);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ init(tvps);
}
protected abstract void init(TaggedValuePointable[] args) throws SystemException;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
index 8a044ea..fcc35ef 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
@@ -62,8 +62,6 @@
import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
import org.apache.vxquery.compiler.rewriter.RewriteRuleset;
import org.apache.vxquery.compiler.rewriter.VXQueryOptimizationContext;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.metadata.VXQueryMetadataProvider;
import org.apache.vxquery.runtime.provider.VXQueryBinaryHashFunctionFactoryProvider;
import org.apache.vxquery.runtime.provider.VXQueryBinaryHashFunctionFamilyProvider;
@@ -217,7 +215,7 @@
}
public void compile(String name, Reader query, CompilerControlBlock ccb, int optimizationLevel)
- throws SystemException {
+ throws AlgebricksException {
moduleNode = XMLQueryParser.parse(name, query);
listener.notifyParseResult(moduleNode);
module = new XMLQueryTranslator(ccb).translateModule(moduleNode);
@@ -229,19 +227,11 @@
listener.notifyTranslationResult(module);
XMLQueryTypeChecker.typeCheckModule(module);
listener.notifyTypecheckResult(module);
- try {
- compiler.optimize();
- } catch (AlgebricksException e) {
- throw new SystemException(ErrorCode.SYSE0001, e);
- }
+ compiler.optimize();
listener.notifyOptimizedResult(module);
JobSpecification jobSpec;
- try {
- jobSpec = compiler.createJob(null, null);
- jobSpec.setFrameSize(frameSize);
- } catch (AlgebricksException e) {
- throw new SystemException(ErrorCode.SYSE0001, e);
- }
+ jobSpec = compiler.createJob(null, null);
+ jobSpec.setFrameSize(frameSize);
module.setHyracksJobSpecification(jobSpec);
listener.notifyCodegenResult(module);
}
@@ -255,7 +245,7 @@
}
private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildDefaultLogicalRewrites() {
- List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultLogicalRewrites = new ArrayList<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>>();
+ List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultLogicalRewrites = new ArrayList<>();
SequentialFixpointRuleController seqCtrlNoDfs = new SequentialFixpointRuleController(false);
SequentialFixpointRuleController seqCtrlFullDfs = new SequentialFixpointRuleController(true);
SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true);