Closed eclipse-ocl-bot closed 3 hours ago
By Adolfo Sanchez-Barbudo Herrera on Feb 08, 2010 10:02
Created attachment 158463 Fixing patch
Patch which solves the bug.
Note that an extra ((InstanceSpecification) INVALID).getClassifiers().add(OCL_INVALID); has been removed from UML StdLibImpl since it's done previously.
Regards, Adolfo.
:notepad_spiral: ocl297666_OclInvalidInStdlib.txt
By Alexander Igdalov on Feb 08, 2010 10:16
+1 to patch.
By Ed Willink on Feb 08, 2010 16:30
Wierd things happen when I apply the patch.
oclstdlib.ecore [which has a missing name="OclVoid"] loses its name="OclInvalid" making it impossible to open oclstdlib.ecore with the Sample Ecore Editor.
I think that the problem may be related to overloaded getName() in OclVoidImpl and OclInvalidImpl.
Perhaps the problem is that the #/0/Invalid reference in the edited (resource) model is being resolved against the plugin copy.
Check that oclstdlib.ecore has named classes and validates before committing,\ which will be difficult since there are 30 validation errors before you start.
By Adolfo Sanchez-Barbudo Herrera on Feb 09, 2010 05:29
Ed,
I don't know what you refer with [which has a missing name="OclVoid"]
The Sample Ecore editor fails because you are using the first instance OCL model plugins. If you run a second eclipse's instance you may check that the stdlib model is fine (regarding OclInvalid)
The point is that the name of the OclInvalid comes from InvalidType.SINGLETON_NAME, which is "OclInvalid" after the patch, but it's still "Invalid" in the first instance OCL plugins. That's the reason tou can't open the oclstdlib.ecore in your first Eclipse's instance.
Cheers,\ Adolfo.
By Adolfo Sanchez-Barbudo Herrera on Feb 09, 2010 05:34
Committed to HEAD.
Resolving as fixed.
By Ed Willink on May 27, 2011 02:55
Closing
| --- | --- | | Bugzilla Link | 297666 | | Status | CLOSED FIXED | | Importance | P3 normal | | Reported | Dec 12, 2009 11:45 EDT | | Modified | May 27, 2011 02:55 EDT | | Version | 3.0.0 | | Reporter | Ed Willink |
Description
The helper class for stdlib.ecore should be changed from Invalid_Class to OclInvalid_Class.
The instance of InvalidType in oclstdlib.uml should be changed from Invalid to OclInvalid.