[unrelated] Treat AssertionError during evaluation as Exception
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/AbstractExecutor.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/AbstractExecutor.java
index 1a9ce84..6433b15 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/AbstractExecutor.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/AbstractExecutor.java
@@ -365,6 +365,11 @@
// and produce a better reason as a result.
throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, referredProperty, sourceValue, navigationCallExp);
}
+ catch (AssertionError e) {
+ // This is a backstop. Library operations should catch their own exceptions
+ // and produce a better reason as a result.
+ throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, referredProperty, sourceValue, navigationCallExp);
+ }
}
/**
@@ -416,6 +421,11 @@
// and produce a better reason as a result.
throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, apparentOperation, ILabelGenerator.Registry.INSTANCE.labelFor(sourceAndArgumentValues[0]), operationCallExp);
}
+ catch (AssertionError e) {
+ // This is a backstop. Library operations should catch their own exceptions
+ // and produce a better reason as a result.
+ throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, apparentOperation, ILabelGenerator.Registry.INSTANCE.labelFor(sourceAndArgumentValues[0]), operationCallExp);
+ }
}
/**
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/BasicEvaluationVisitor.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/BasicEvaluationVisitor.java
index ff21d68..113ee85 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/BasicEvaluationVisitor.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/BasicEvaluationVisitor.java
@@ -152,6 +152,8 @@
throw e;
} catch (Exception e) {
throw new InvalidValueException(e, "Evaluation Failure");
+ } catch (AssertionError e) {
+ throw new InvalidValueException(e, "Evaluation Failure");
}
}
@@ -413,6 +415,11 @@
// and produce a better reason as a result.
throw new InvalidValueException(e, StringUtil.bind(PivotMessagesInternal.FailedToEvaluate_ERROR_, staticIteration, sourceValue, iterateExp)); // FIXME dymamicIteration throughout
}
+ catch (AssertionError e) {
+ // This is a backstop. Library iterations should catch their own exceptions
+ // and produce a better reason as a result.
+ throw new InvalidValueException(e, StringUtil.bind(PivotMessagesInternal.FailedToEvaluate_ERROR_, staticIteration, sourceValue, iterateExp)); // FIXME dymamicIteration throughout
+ }
return result;
}
@@ -487,6 +494,11 @@
// and produce a better reason as a result.
throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, staticIteration, sourceValue, iteratorExp);
}
+ catch (AssertionError e) {
+ // This is a backstop. Library iterations should catch their own exceptions
+ // and produce a better reason as a result.
+ throw new InvalidValueException(e, PivotMessagesInternal.FailedToEvaluate_ERROR_, staticIteration, sourceValue, iteratorExp);
+ }
return result;
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/TracingEvaluationVisitor.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/TracingEvaluationVisitor.java
index 3e8939d..a574b43 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/TracingEvaluationVisitor.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/evaluation/TracingEvaluationVisitor.java
@@ -56,189 +56,191 @@
*/
public class TracingEvaluationVisitor extends EvaluationVisitorDecorator implements EvaluationVisitor.EvaluationVisitorExtension {
- /**
- * Initializes me with the visitor whose evaluation I trace to the console.
- *
- * @param decorated a real evaluation visitor
- */
- public TracingEvaluationVisitor(@NonNull EvaluationVisitor decorated) {
- super(decorated);
- }
+ /**
+ * Initializes me with the visitor whose evaluation I trace to the console.
+ *
+ * @param decorated a real evaluation visitor
+ */
+ public TracingEvaluationVisitor(@NonNull EvaluationVisitor decorated) {
+ super(decorated);
+ }
- /** @deprecated moved to Executor
- * @since 1.1*/
- @Override
+ /** @deprecated moved to Executor
+ * @since 1.1*/
+ @Override
@Deprecated
public @NonNull Executor getExecutor() {
return ((EvaluationVisitor.EvaluationVisitorExtension)delegate).getExecutor();
}
- /** @deprecated moved to Executor */
- @Override
+ /** @deprecated moved to Executor */
+ @Override
@Deprecated
public @NonNull MetamodelManager getMetamodelManager() {
return delegate.getMetamodelManager();
}
-
- protected @Nullable Object trace(@NonNull Element expression, @Nullable Object value) {
- try {
- HelperUtil.trace("Evaluate: " + expression); //$NON-NLS-1$
- HelperUtil.trace("Result : " + //$NON-NLS-1$
- (value != null ? TypeId.OCL_INVALID_NAME : String.valueOf(value))); //$NON-NLS-1$
- } catch (Exception e) {
- // tracing must not interfere with evaluation
- }
-
- return value;
- }
-
- @Override
- public @Nullable Object visitAssociationClassCallExp(@NonNull AssociationClassCallExp callExp) {
- return trace(callExp, delegate.visitAssociationClassCallExp(callExp));
- }
- @Override
- public @Nullable Object visitBooleanLiteralExp(@NonNull BooleanLiteralExp literalExp) {
- return trace(literalExp, delegate.visitBooleanLiteralExp(literalExp));
- }
+ protected @Nullable Object trace(@NonNull Element expression, @Nullable Object value) {
+ try {
+ HelperUtil.trace("Evaluate: " + expression); //$NON-NLS-1$
+ HelperUtil.trace("Result : " + //$NON-NLS-1$
+ (value != null ? TypeId.OCL_INVALID_NAME : String.valueOf(value)));
+ } catch (Exception e) {
+ // tracing must not interfere with evaluation
+ } catch (AssertionError e) {
+ // tracing must not interfere with evaluation
+ }
- @Override
- public @Nullable Object visitCollectionItem(@NonNull CollectionItem item) {
- return trace(item, delegate.visitCollectionItem(item));
- }
+ return value;
+ }
- @Override
- public @Nullable Object visitCollectionLiteralExp(@NonNull CollectionLiteralExp literalExp) {
- return trace(literalExp, delegate.visitCollectionLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitAssociationClassCallExp(@NonNull AssociationClassCallExp callExp) {
+ return trace(callExp, delegate.visitAssociationClassCallExp(callExp));
+ }
- @Override
- public @Nullable Object visitCollectionRange(@NonNull CollectionRange range) {
- return trace(range, delegate.visitCollectionRange(range));
- }
+ @Override
+ public @Nullable Object visitBooleanLiteralExp(@NonNull BooleanLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitBooleanLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitConstraint(@NonNull Constraint constraint) {
- return trace(constraint, delegate.visitConstraint(constraint));
- }
+ @Override
+ public @Nullable Object visitCollectionItem(@NonNull CollectionItem item) {
+ return trace(item, delegate.visitCollectionItem(item));
+ }
- @Override
- public @Nullable Object visitEnumLiteralExp(@NonNull EnumLiteralExp literalExp) {
- return trace(literalExp, delegate.visitEnumLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitCollectionLiteralExp(@NonNull CollectionLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitCollectionLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitExpressionInOCL(@NonNull ExpressionInOCL expression) {
- return trace(expression, delegate.visitExpressionInOCL(expression));
- }
+ @Override
+ public @Nullable Object visitCollectionRange(@NonNull CollectionRange range) {
+ return trace(range, delegate.visitCollectionRange(range));
+ }
- @Override
- public @Nullable Object visitIfExp(@NonNull IfExp ifExp) {
- return trace(ifExp, delegate.visitIfExp(ifExp));
- }
+ @Override
+ public @Nullable Object visitConstraint(@NonNull Constraint constraint) {
+ return trace(constraint, delegate.visitConstraint(constraint));
+ }
- @Override
- public @Nullable Object visitIntegerLiteralExp(@NonNull IntegerLiteralExp literalExp) {
- return trace(literalExp, delegate.visitIntegerLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitEnumLiteralExp(@NonNull EnumLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitEnumLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitInvalidLiteralExp(@NonNull InvalidLiteralExp literalExp) {
- return trace(literalExp, delegate.visitInvalidLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitExpressionInOCL(@NonNull ExpressionInOCL expression) {
+ return trace(expression, delegate.visitExpressionInOCL(expression));
+ }
- @Override
- public @Nullable Object visitLetExp(@NonNull LetExp letExp) {
- return trace(letExp, delegate.visitLetExp(letExp));
- }
+ @Override
+ public @Nullable Object visitIfExp(@NonNull IfExp ifExp) {
+ return trace(ifExp, delegate.visitIfExp(ifExp));
+ }
- @Override
- public @Nullable Object visitMapLiteralExp(@NonNull MapLiteralExp literalExp) {
- return trace(literalExp, delegate.visitMapLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitIntegerLiteralExp(@NonNull IntegerLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitIntegerLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitMapLiteralPart(@NonNull MapLiteralPart range) {
- return trace(range, delegate.visitMapLiteralPart(range));
- }
+ @Override
+ public @Nullable Object visitInvalidLiteralExp(@NonNull InvalidLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitInvalidLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitMessageExp(@NonNull MessageExp messageExp) {
- return trace(messageExp, delegate.visitMessageExp(messageExp));
- }
+ @Override
+ public @Nullable Object visitLetExp(@NonNull LetExp letExp) {
+ return trace(letExp, delegate.visitLetExp(letExp));
+ }
- @Override
- public @Nullable Object visitNullLiteralExp(@NonNull NullLiteralExp literalExp) {
- return trace(literalExp, delegate.visitNullLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitMapLiteralExp(@NonNull MapLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitMapLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitOperationCallExp(@NonNull OperationCallExp callExp) {
- return trace(callExp, delegate.visitOperationCallExp(callExp));
- }
+ @Override
+ public @Nullable Object visitMapLiteralPart(@NonNull MapLiteralPart range) {
+ return trace(range, delegate.visitMapLiteralPart(range));
+ }
- @Override
- public @Nullable Object visitOppositePropertyCallExp(@NonNull OppositePropertyCallExp callExp) {
- return trace(callExp, delegate.visitOppositePropertyCallExp(callExp));
- }
+ @Override
+ public @Nullable Object visitMessageExp(@NonNull MessageExp messageExp) {
+ return trace(messageExp, delegate.visitMessageExp(messageExp));
+ }
- @Override
- public @Nullable Object visitPropertyCallExp(@NonNull PropertyCallExp callExp) {
- return trace(callExp, delegate.visitPropertyCallExp(callExp));
- }
+ @Override
+ public @Nullable Object visitNullLiteralExp(@NonNull NullLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitNullLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitRealLiteralExp(@NonNull RealLiteralExp literalExp) {
- return trace(literalExp, delegate.visitRealLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitOperationCallExp(@NonNull OperationCallExp callExp) {
+ return trace(callExp, delegate.visitOperationCallExp(callExp));
+ }
- @Override
+ @Override
+ public @Nullable Object visitOppositePropertyCallExp(@NonNull OppositePropertyCallExp callExp) {
+ return trace(callExp, delegate.visitOppositePropertyCallExp(callExp));
+ }
+
+ @Override
+ public @Nullable Object visitPropertyCallExp(@NonNull PropertyCallExp callExp) {
+ return trace(callExp, delegate.visitPropertyCallExp(callExp));
+ }
+
+ @Override
+ public @Nullable Object visitRealLiteralExp(@NonNull RealLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitRealLiteralExp(literalExp));
+ }
+
+ @Override
public @Nullable Object visitShadowExp(@NonNull ShadowExp shadowExp) {
- return trace(shadowExp, delegate.visitShadowExp(shadowExp));
- }
+ return trace(shadowExp, delegate.visitShadowExp(shadowExp));
+ }
- @Override
- public @Nullable Object visitStateExp(@NonNull StateExp stateExp) {
- return trace(stateExp, delegate.visitStateExp(stateExp));
- }
+ @Override
+ public @Nullable Object visitStateExp(@NonNull StateExp stateExp) {
+ return trace(stateExp, delegate.visitStateExp(stateExp));
+ }
- @Override
- public @Nullable Object visitStringLiteralExp(@NonNull StringLiteralExp literalExp) {
- return trace(literalExp, delegate.visitStringLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitStringLiteralExp(@NonNull StringLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitStringLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitTupleLiteralExp(@NonNull TupleLiteralExp literalExp) {
- return trace(literalExp, delegate.visitTupleLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitTupleLiteralExp(@NonNull TupleLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitTupleLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitTupleLiteralPart(@NonNull TupleLiteralPart part) {
- return trace(part, delegate.visitTupleLiteralPart(part));
- }
+ @Override
+ public @Nullable Object visitTupleLiteralPart(@NonNull TupleLiteralPart part) {
+ return trace(part, delegate.visitTupleLiteralPart(part));
+ }
- @Override
- public @Nullable Object visitTypeExp(@NonNull TypeExp typeExp) {
- return trace(typeExp, delegate.visitTypeExp(typeExp));
- }
+ @Override
+ public @Nullable Object visitTypeExp(@NonNull TypeExp typeExp) {
+ return trace(typeExp, delegate.visitTypeExp(typeExp));
+ }
- @Override
- public @Nullable Object visitUnlimitedNaturalLiteralExp(@NonNull UnlimitedNaturalLiteralExp literalExp) {
- return trace(literalExp, delegate.visitUnlimitedNaturalLiteralExp(literalExp));
- }
+ @Override
+ public @Nullable Object visitUnlimitedNaturalLiteralExp(@NonNull UnlimitedNaturalLiteralExp literalExp) {
+ return trace(literalExp, delegate.visitUnlimitedNaturalLiteralExp(literalExp));
+ }
- @Override
- public @Nullable Object visitUnspecifiedValueExp(@NonNull UnspecifiedValueExp unspecExp) {
- return trace(unspecExp, delegate.visitUnspecifiedValueExp(unspecExp));
- }
+ @Override
+ public @Nullable Object visitUnspecifiedValueExp(@NonNull UnspecifiedValueExp unspecExp) {
+ return trace(unspecExp, delegate.visitUnspecifiedValueExp(unspecExp));
+ }
- @Override
- public @Nullable Object visitVariable(@NonNull Variable variable) {
- return trace(variable, delegate.visitVariable(variable));
- }
+ @Override
+ public @Nullable Object visitVariable(@NonNull Variable variable) {
+ return trace(variable, delegate.visitVariable(variable));
+ }
- @Override
- public @Nullable Object visitVariableExp(@NonNull VariableExp variableExp) {
- return trace(variableExp, delegate.visitVariableExp(variableExp));
- }
+ @Override
+ public @Nullable Object visitVariableExp(@NonNull VariableExp variableExp) {
+ return trace(variableExp, delegate.visitVariableExp(variableExp));
+ }
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/JavaCompareToOperation.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/JavaCompareToOperation.java
index 2fb6ab4..47e43f3 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/JavaCompareToOperation.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/JavaCompareToOperation.java
@@ -40,6 +40,8 @@
return ValueUtil.integerValueOf(((Integer)result).intValue());
} catch (Exception e) {
throw new InvalidValueException(e, PivotMessages.TypedResultRequired, TypeId.INTEGER_NAME);
+ } catch (AssertionError e) {
+ throw new InvalidValueException(e, PivotMessages.TypedResultRequired, TypeId.INTEGER_NAME);
}
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ExistsIteration.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ExistsIteration.java
index f049549..0b7c636 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ExistsIteration.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ExistsIteration.java
@@ -35,7 +35,7 @@
public @NonNull Object createAccumulatorValue(@NonNull Evaluator evaluator, @NonNull TypeId accumulatorTypeId, @NonNull TypeId bodyTypeId) {
return createAccumulatorValue(ValueUtil.getExecutor(evaluator), accumulatorTypeId, bodyTypeId);
}
-
+
/**
* @since 1.1
*/
@@ -56,7 +56,7 @@
}
@Override
- protected @Nullable Object updateAccumulator(@NonNull IterationManager iterationManager) {
+ protected @Nullable Object updateAccumulator(@NonNull IterationManager iterationManager) {
try {
Object bodyVal = iterationManager.evaluateBody();
if (bodyVal == Boolean.TRUE) {
@@ -92,5 +92,11 @@
accumulatorValue.set(ValueUtil.createInvalidValue(e));
return CARRY_ON; // Carry on for nothing found
}
+ catch (AssertionError e) {
+ MutableObject accumulatorValue = (MutableObject) iterationManager.getAccumulatorValue();
+ assert accumulatorValue != null;
+ accumulatorValue.set(ValueUtil.createInvalidValue(e));
+ return CARRY_ON; // Carry on for nothing found
+ }
}
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ForAllIteration.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ForAllIteration.java
index 1c852c6..208ec2f 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ForAllIteration.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/ForAllIteration.java
@@ -35,7 +35,7 @@
public @NonNull Object createAccumulatorValue(@NonNull Evaluator evaluator, @NonNull TypeId accumulatorTypeId, @NonNull TypeId bodyTypeId) {
return createAccumulatorValue(ValueUtil.getExecutor(evaluator), accumulatorTypeId, bodyTypeId);
}
-
+
/**
* @since 1.1
*/
@@ -56,7 +56,7 @@
}
@Override
- protected @Nullable Object updateAccumulator(@NonNull IterationManager iterationManager) {
+ protected @Nullable Object updateAccumulator(@NonNull IterationManager iterationManager) {
try {
Object bodyVal = iterationManager.evaluateBody();
if (bodyVal == Boolean.FALSE) {
@@ -92,5 +92,11 @@
accumulatorValue.set(ValueUtil.createInvalidValue(e));
return CARRY_ON; // Carry on for nothing found
}
+ catch (AssertionError e) {
+ MutableObject accumulatorValue = (MutableObject) iterationManager.getAccumulatorValue();
+ assert accumulatorValue != null;
+ accumulatorValue.set(ValueUtil.createInvalidValue(e));
+ return CARRY_ON; // Carry on for nothing found
+ }
}
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/SortedByIteration.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/SortedByIteration.java
index ab2f0b2..1451558 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/SortedByIteration.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/iterator/SortedByIteration.java
@@ -96,6 +96,8 @@
throw e;
} catch (Exception e) {
throw new InvalidValueException(e);
+ } catch (AssertionError e) {
+ throw new InvalidValueException(e);
}
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/oclany/OclAnyOclLogOperation.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/oclany/OclAnyOclLogOperation.java
index 7b84f5a..fe6b514 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/oclany/OclAnyOclLogOperation.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/library/oclany/OclAnyOclLogOperation.java
@@ -34,7 +34,9 @@
if (log != null) {
log.append(getSourceText(sourceVal));
}
- } catch (Exception e) {}
+ }
+ catch (Exception e) {}
+ catch (AssertionError e) {}
return sourceVal;
}
@@ -50,7 +52,9 @@
if (log != null) {
log.append(message + getSourceText(sourceVal));
}
- } catch (Exception e) {}
+ }
+ catch (Exception e) {}
+ catch (AssertionError e) {}
return sourceVal;
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
index 4491d19..72bc30b 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
@@ -509,7 +509,18 @@
}
}
- public static @NonNull InvalidValueException createInvalidValue(@NonNull Exception e) {
+ /**
+ * @since 1.5
+ */
+ public static @NonNull InvalidValueException createInvalidValue(@NonNull Throwable e) {
+ if (e instanceof InvalidValueException) {
+ return (InvalidValueException)e;
+ }
+ else {
+ return new InvalidValueException(e);
+ }
+ }
+ public static @NonNull InvalidValueException createInvalidValue(@NonNull Exception e) { // FIXME REmove obsolete signature
if (e instanceof InvalidValueException) {
return (InvalidValueException)e;
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/values/InvalidValueException.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/values/InvalidValueException.java
index 44c79e6..ba56efc 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/values/InvalidValueException.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/values/InvalidValueException.java
@@ -48,7 +48,14 @@
return ValuesPackage.Literals.INVALID_VALUE;
}
- public InvalidValueException(@NonNull Exception exception, /*@NonNull*/ String message) {
+ /**
+ * @since 1.5
+ */
+ public InvalidValueException(@NonNull Throwable exception, /*@NonNull*/ String message) {
+ super(exception, message);
+ assert !(exception instanceof InvalidValueException);
+ }
+ public InvalidValueException(@NonNull Exception exception, /*@NonNull*/ String message) { // FIXME remove obsolete signature
super(exception, message);
assert !(exception instanceof InvalidValueException);
}
@@ -57,13 +64,26 @@
super(messageTemplate, bindings);
}
- public InvalidValueException(@NonNull Exception exception) {
- super(exception, null);
- assert !(exception instanceof InvalidValueException);
+ /**
+ * @since 1.5
+ */
+ public InvalidValueException(@NonNull Throwable e) {
+ super(e, null);
+ assert !(e instanceof InvalidValueException);
+ }
+ public InvalidValueException(@NonNull Exception e) { // FIXME remove obsolete signature
+ super(e, null);
+ assert !(e instanceof InvalidValueException);
}
- public InvalidValueException(@NonNull Exception exception, /*@NonNull*/ String messageTemplate, Object... bindings) {
- super(exception, messageTemplate, bindings);
+ /**
+ * @since 1.5
+ */
+ public InvalidValueException(@NonNull Throwable e, /*@NonNull*/ String messageTemplate, Object... bindings) {
+ super(e, messageTemplate, bindings);
+ }
+ public InvalidValueException(@NonNull Exception e, /*@NonNull*/ String messageTemplate, Object... bindings) {
+ super(e, messageTemplate, bindings); // FIXME remove obsolete signature
}
@Override