osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
35 stars 8 forks source link

IllegalArgumentException when validating type libraries #2875

Closed joeseibel closed 4 days ago

joeseibel commented 12 months ago

The following model results in an IllegalArgumentException:

package bug
public
  annex EMV2 {**
    error types extends library1, library2 with
    end types;
  **};
end bug;

package library1
public
  annex EMV2 {**
    error types extends ErrorLibrary with
    end types;
  **};
end library1;

package library2
public
  annex EMV2 {**
    error types extends ErrorLibrary with
    end types;
  **};
end library2;

Stack trace:

java.lang.IllegalArgumentException: You can only add issues for EObjects contained in the currently validated resource 'platform:/resource/Test/bug.aadl'. But the given EObject was contained in 'platform:/plugin/org.osate.aadl2.errormodel.contrib/resources/packages/ErrorLibrary.aadl'
    at org.eclipse.xtext.validation.AbstractDeclarativeValidator.checkIsFromCurrentlyCheckedResource(AbstractDeclarativeValidator.java:598)
    at org.eclipse.xtext.validation.AbstractDeclarativeValidator.acceptError(AbstractDeclarativeValidator.java:579)
    at org.eclipse.xtext.validation.AbstractDeclarativeValidator.error(AbstractDeclarativeValidator.java:466)
    at org.osate.xtext.aadl2.properties.validation.PropertiesValidator.error(PropertiesValidator.java:1154)
    at org.osate.xtext.aadl2.errormodel.validation.ErrorModelValidator.checkUniqueInheritedDefiningErrorTypes(ErrorModelValidator.java:870)
    at org.osate.xtext.aadl2.errormodel.validation.ErrorModelValidator.checkUniqueInheritedDefiningErrorTypes(ErrorModelValidator.java:878)
    at org.osate.xtext.aadl2.errormodel.validation.ErrorModelValidator.checkUniqueDefiningIdentifiers(ErrorModelValidator.java:830)
    at org.osate.xtext.aadl2.errormodel.validation.ErrorModelValidator.caseErrorModelLibrary(ErrorModelValidator.java:350)
    at jdk.internal.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.xtext.validation.AbstractDeclarativeValidator$MethodWrapper.invoke(AbstractDeclarativeValidator.java:129)
    at org.eclipse.xtext.validation.AbstractDeclarativeValidator.internalValidate(AbstractDeclarativeValidator.java:337)
    at org.eclipse.xtext.validation.AbstractInjectableValidator.validate(AbstractInjectableValidator.java:72)
    at org.eclipse.xtext.validation.CompositeEValidator.validate(CompositeEValidator.java:151)
    at org.eclipse.emf.ecore.util.Diagnostician.doValidate(Diagnostician.java:299)
    at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:245)
    at org.eclipse.xtext.validation.CancelableDiagnostician.validate(CancelableDiagnostician.java:41)
    at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:200)
    at org.eclipse.emf.ecore.util.Diagnostician.validate(Diagnostician.java:142)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:147)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:125)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:91)
    at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:92)
    at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:1)
    at org.eclipse.xtext.util.concurrent.CancelableUnitOfWork.exec(CancelableUnitOfWork.java:27)
    at org.eclipse.xtext.util.concurrent.WrappingCancelableUnitOfWork.exec(WrappingCancelableUnitOfWork.java:58)
    at org.eclipse.xtext.util.concurrent.CancelableUnitOfWork.exec(CancelableUnitOfWork.java:27)
    at org.eclipse.xtext.resource.OutdatedStateManager.exec(OutdatedStateManager.java:70)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.internalReadOnly(XtextDocument.java:525)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.readOnly(XtextDocument.java:497)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:136)
    at org.eclipse.xtext.util.concurrent.IReadAccess.tryReadOnly(IReadAccess.java:50)
    at org.eclipse.xtext.ui.editor.validation.ValidationJob.createIssues(ValidationJob.java:87)
    at org.eclipse.xtext.ui.editor.validation.ValidationJob.run(ValidationJob.java:68)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
lwrage commented 1 week ago

The validator associates the error with the wrong object.