eclipse-ocl / org.eclipse.ocl

Eclipse Public License 2.0
0 stars 0 forks source link

[classic-evaluator] NPE below AbstractEvaluationEnvironment.callOperation #1648

Closed eclipse-ocl-bot closed 2 hours ago

eclipse-ocl-bot commented 2 hours ago

| --- | --- | | Bugzilla Link | 483246 | | Status | RESOLVED FIXED | | Importance | P3 normal | | Reported | Nov 30, 2015 02:02 EDT | | Modified | Apr 08, 2019 10:47 EDT | | See also | Gerrit change https://git.eclipse.org/r/136876, Git commit 4cdba7f8, 546202 | | Reporter | EPP Error Reports |

Description

The following incident was reported via the automated error reporting:

code:                   10\
plugin:                 org.eclipse.ocl_3.5.0.v20150521-1211\
message:                ERROR in (calloperation): (null)\
fingerprint:            9b9ccdd4\
exception class:        java.lang.NullPointerException\
exception message:      -\
number of children:     0\
\
java.lang.NullPointerException: null\
at sun.reflect.GeneratedMethodAccessor71.invoke(null:-1)\
at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1)\
at java.lang.reflect.Method.invoke(null:-1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:198)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:175)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:175)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:175)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:175)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.AbstractEvaluationEnvironment.callOperation(AbstractEvaluationEnvironment.java:175)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:159)\
at org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation(QvtOperationalEvaluationEnv.java:204)\
at org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.callOperation(EcoreEvaluationEnvironment.java:1)\
at org.eclipse.ocl.EvaluationVisitorImpl.visitOperationCallExp(EvaluationVisitorImpl.java:271)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.doVisitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:754)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:685)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitOperationCallExp(EvaluationVisitorDecorator.java:263)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitOperationCallExp(QvtGenericEvaluationVisitor.java:241)\
at org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(OperationCallExpImpl.java:384)\
at org.eclipse.ocl.AbstractEvaluationVisitor.safeVisitExpression(AbstractEvaluationVisitor.java:569)\
at org.eclipse.ocl.EvaluationVisitorImpl.visitOperationCallExp(EvaluationVisitorImpl.java:232)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.doVisitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:754)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:685)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitOperationCallExp(EvaluationVisitorDecorator.java:263)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitOperationCallExp(QvtGenericEvaluationVisitor.java:241)\
at org.eclipse.ocl.ecore.impl.OperationCallExpImpl.accept(OperationCallExpImpl.java:384)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitIfExp(QvtOperationalEvaluationVisitorImpl.java:329)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitIfExp(EvaluationVisitorDecorator.java:207)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitIfExp(QvtGenericEvaluationVisitor.java:193)\
at org.eclipse.ocl.ecore.impl.IfExpImpl.accept(IfExpImpl.java:442)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitObjectExp(QvtOperationalEvaluationVisitorImpl.java:1137)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitObjectExp(QvtGenericEvaluationVisitor.java:382)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.ObjectExpImpl.accept(ObjectExpImpl.java:176)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationBody(QvtOperationalEvaluationVisitorImpl.java:1169)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingBody(QvtOperationalEvaluationVisitorImpl.java:649)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingBody(QvtGenericEvaluationVisitor.java:352)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingBodyImpl.accept(MappingBodyImpl.java:122)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeMappingBody(QvtOperationalEvaluationVisitorImpl.java:858)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingOperation(QvtOperationalEvaluationVisitorImpl.java:817)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingOperation(QvtGenericEvaluationVisitor.java:362)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingOperationImpl.accept(MappingOperationImpl.java:220)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeImperativeOperation(QvtOperationalEvaluationVisitorImpl.java:1968)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.doVisitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:737)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:685)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingCallExp(QvtOperationalEvaluationVisitorImpl.java:675)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingCallExp(QvtGenericEvaluationVisitor.java:357)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingCallExpImpl.accept(MappingCallExpImpl.java:112)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:150)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitExpression(QvtGenericEvaluationVisitor.java:181)\
at org.eclipse.ocl.internal.evaluation.IterationTemplate.evaluate(IterationTemplate.java:81)\
at org.eclipse.ocl.EvaluationVisitorImpl.evaluateCollectIterator(EvaluationVisitorImpl.java:1968)\
at org.eclipse.ocl.EvaluationVisitorImpl.visitIteratorExp(EvaluationVisitorImpl.java:1818)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitIteratorExp(EvaluationVisitorDecorator.java:235)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitIteratorExp(QvtGenericEvaluationVisitor.java:217)\
at org.eclipse.ocl.ecore.impl.IteratorExpImpl.accept(IteratorExpImpl.java:108)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitAssignExp(QvtOperationalEvaluationVisitorImpl.java:368)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitAssignExp(QvtGenericEvaluationVisitor.java:317)\
at org.eclipse.m2m.qvt.oml.ecore.ImperativeOCL.impl.AssignExpImpl.accept(AssignExpImpl.java:404)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitObjectExp(QvtOperationalEvaluationVisitorImpl.java:1137)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitObjectExp(QvtGenericEvaluationVisitor.java:382)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.ObjectExpImpl.accept(ObjectExpImpl.java:176)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationBody(QvtOperationalEvaluationVisitorImpl.java:1169)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingBody(QvtOperationalEvaluationVisitorImpl.java:649)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingBody(QvtGenericEvaluationVisitor.java:352)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingBodyImpl.accept(MappingBodyImpl.java:122)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeMappingBody(QvtOperationalEvaluationVisitorImpl.java:858)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingOperation(QvtOperationalEvaluationVisitorImpl.java:817)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingOperation(QvtGenericEvaluationVisitor.java:362)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingOperationImpl.accept(MappingOperationImpl.java:220)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeImperativeOperation(QvtOperationalEvaluationVisitorImpl.java:1968)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingBody(QvtOperationalEvaluationVisitorImpl.java:645)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingBody(QvtGenericEvaluationVisitor.java:352)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingBodyImpl.accept(MappingBodyImpl.java:122)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeMappingBody(QvtOperationalEvaluationVisitorImpl.java:858)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingOperation(QvtOperationalEvaluationVisitorImpl.java:817)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingOperation(QvtGenericEvaluationVisitor.java:362)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingOperationImpl.accept(MappingOperationImpl.java:220)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeImperativeOperation(QvtOperationalEvaluationVisitorImpl.java:1968)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.dispatchDisjunctMapping(QvtOperationalEvaluationVisitorImpl.java:2025)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeMappingBody(QvtOperationalEvaluationVisitorImpl.java:839)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingOperation(QvtOperationalEvaluationVisitorImpl.java:817)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingOperation(QvtGenericEvaluationVisitor.java:362)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingOperationImpl.accept(MappingOperationImpl.java:220)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeImperativeOperation(QvtOperationalEvaluationVisitorImpl.java:1968)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.doVisitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:737)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationCallExp(QvtOperationalEvaluationVisitorImpl.java:685)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitMappingCallExp(QvtOperationalEvaluationVisitorImpl.java:675)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitMappingCallExp(QvtGenericEvaluationVisitor.java:357)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.MappingCallExpImpl.accept(MappingCallExpImpl.java:112)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:150)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitExpression(QvtGenericEvaluationVisitor.java:181)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.iterators.QvtImperativeIteratorTemplate.evaluateResultTemplate(QvtImperativeIteratorTemplate.java:51)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.iterators.QvtIterationTemplate.evaluate(QvtIterationTemplate.java:84)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitImperativeIterateExp(QvtOperationalEvaluationVisitorImpl.java:1554)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitImperativeIterateExp(QvtGenericEvaluationVisitor.java:451)\
at org.eclipse.m2m.qvt.oml.ecore.ImperativeOCL.impl.ImperativeIterateExpImpl.accept(ImperativeIterateExpImpl.java:210)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression(QvtOperationalEvaluationVisitorImpl.java:419)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitOperationBody(QvtOperationalEvaluationVisitorImpl.java:1169)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitEntryOperation(QvtOperationalEvaluationVisitorImpl.java:496)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitEntryOperation(QvtGenericEvaluationVisitor.java:461)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.EntryOperationImpl.accept(EntryOperationImpl.java:67)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.executeImperativeOperation(QvtOperationalEvaluationVisitorImpl.java:1968)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.runMainEntry(QvtOperationalEvaluationVisitorImpl.java:2569)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl$1.invoke(QvtOperationalEvaluationVisitorImpl.java:1070)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl$1.invoke(QvtOperationalEvaluationVisitorImpl.java:1)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.doVisitTransformation(QvtOperationalEvaluationVisitorImpl.java:1096)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitModule(QvtOperationalEvaluationVisitorImpl.java:878)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericEvaluationVisitor.visitModule(QvtGenericEvaluationVisitor.java:372)\
at org.eclipse.m2m.internal.qvt.oml.expressions.impl.ModuleImpl.accept(ModuleImpl.java:632)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.execute(QvtOperationalEvaluationVisitorImpl.java:866)\
at org.eclipse.m2m.internal.qvt.oml.evaluator.QvtGenericVisitorDecorator.execute(QvtGenericVisitorDecorator.java:80)\
at org.eclipse.m2m.internal.qvt.oml.InternalTransformationExecutor.doExecute(InternalTransformationExecutor.java:236)\
at org.eclipse.m2m.internal.qvt.oml.InternalTransformationExecutor.execute(InternalTransformationExecutor.java:203)\
at org.eclipse.m2m.qvt.oml.TransformationExecutor.execute(TransformationExecutor.java:152)\
at org.eclipse.papyrus.java.generator.jdtsynchronizer.RunGenerator.runTransformation(RunGenerator.java:182)\
at org.eclipse.papyrus.java.generator.jdtsynchronizer.RunGenerator.runGeneration(RunGenerator.java:98)\
at org.eclipse.papyrus.java.generator.ui.handlers.GenerateJavaCodeHandler.doExecute(GenerateJavaCodeHandler.java:200)\
at org.eclipse.papyrus.java.generator.ui.handlers.GenerateJavaCodeHandler$1.run(GenerateJavaCodeHandler.java:130)\
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)\

\

General Information:

reported-by:      \
anonymous-id:     4dccb331-4e5a-41a3-8ca9-4eaf7b7228e5\
eclipse-build-id: 4.5.1.M20150904-0015\
eclipse-product:  org.eclipse.epp.package.modeling.product\
operating system: Windows10 10.0.0 (x86_64) - win32\
jre-version:      1.8.0_65-b17

The following plug-ins were present on the execution stack (*):

  1. org.eclipse.core.jobs_3.7.0.v20150330-2103
  2. org.eclipse.m2m.qvt.oml_3.5.0.v20150603-1058
  3. org.eclipse.ocl_3.5.0.v20150521-1211
  4. org.eclipse.ocl.ecore_3.5.0.v20150525-1635
  5. org.eclipse.papyrus.java.generator.jdtsynchronizer_1.1.2.201509161524
  6. org.eclipse.papyrus.java.generator.ui_1.1.2.201509161524

Please note that:

Other Resources:

Thank you for your assistance.\ Your friendly error-reports-inbox.

This bug was created on behalf of ed@xxxxxxxxxxxx.

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Nov 30, 2015 02:27

This appears to be a correct behaviour with an excessive diagnostic.

A user-defined operation invocation problem gives an OCL invalid result, and an explanatory error log message.

The Pivot-based OCL has a rich invalid that can carry the problem back to the caller.

Is there any alternative for the Classic Ecore-based OCL?

The current behaviour is particularly unhelpful to QVTo which already has a callOperation override. A better overrideable getInvalidResult(Exception) method?

It appears that the user method was identified but an NPE occurred before it was invoked. Probably source or arguments are null. A null source can certainly be invalid without error log. A probable fix for this case.

More generally, if a new EvaluationOptions.CACHE_INVALID option is set, any exceptions could be cached by the EvaluationEnvironment so that the invoking application (which sets EvaluationOptions.CACHE_INVALID) can access them on demand without troubling the error log.

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Nov 21, 2016 04:22

(In reply to Ed Willink from comment #1)

This appears to be a correct behaviour with an excessive diagnostic.

The diagnostic propagation to the user is caller's resposibility.

Probably one of:

org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv.callOperation

org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.visitExpression

org.eclipse.m2m.qvt.oml.TransformationExecutor.execute

But possibly:

org.eclipse.papyrus.java.generator.jdtsynchronizer.RunGenerator.runTransformation

Not OCL, redirecting to QVTo

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Feb 13, 2019 08:04

(In reply to Ed Willink from comment #2)

Not OCL, redirecting to QVTo

Restoring to OCL. AbstractEvaluationEnvironment.callOperation is at the heart of the problem. If a method is invoked on a null source an NPE results which is caught and logged by OCL. Difficult for QVTo or Papyrus to intercept without guaranteeing non-null.

The null source could be detected/correlated against a ststic method, in which case the local logging is bypassed and an IllegalArgumentException propagtes to be logged again by OCL. No real change. There seems no special IAE handling.

The callOperation Javadoc is:

 * Implements the inherited method by attempting to find an appropriate
 * Java method in the actual type of the <tt>source</tt> object and invoking
 * it.  On failure to find or invoke the method (e.g., an exception), the
 * <tt>OclInvalid</tt> result is returned.\
 * 
 * @return the result of the Java method invocation, or <tt>OclInvalid</tt>
 *    on failure of the method invocation

strongly suggesting that method invocation failures can be silently turned into OclInvalid. No logging appropriate for 'normal' failures.

There is no Javadoc corresponding to @throws IllegalArgumentException

Very simple fix, but it is a subtle Classic OCL change which always seems to ripple. Maybe we just change the log from

"ERROR in (calloperation): (null)"

to

"INFO in callOperation of ..."

eclipse-ocl-bot commented 2 hours ago

Feb 13, 2019 16:52

New Gerrit change created: https://git.eclipse.org/r/136876

eclipse-ocl-bot commented 2 hours ago

Feb 13, 2019 17:25

Gerrit change https://git.eclipse.org/r/136876 was merged to [master].\ Commit: http://git.eclipse.org/c/ocl/org.eclipse.ocl.git/commit/?id=4cdba7f8f98317ab0c17890b7489616eb7bf094e

eclipse-ocl-bot commented 2 hours ago

By Ed Willink on Feb 14, 2019 08:47

Pushed to master for M3.