Closed anthonyanjorin closed 5 years ago
Hi Tony,
how can I have an older version (Java 8) of IBeX to avoid the installation of Java 10, Eclipse Photon, new dev workspace for Democles etc. just to check and fix this case?
Bests, Greg
Hi Greg,
I don’t think you need the ibex dev workspace:
Would one of these options be ok? Java 8 should certainly work, I’m not sure about Eclipse <= Photon, though. I would have to try that out.
Cheers and thanks, Tony
Hi Tony,
the problem is that the fat jar file contains code (e.g., org.emoflon.ibex.tgg.run.ibextggecoretosql.SYNC_App
) that has been compiled for Java 10 (version 54). I get a java.lang.UnsupportedVersionError
when running the tests.
Bests, Greg
Ahhh... then I can fix this right away.
Ok it should work now.
Hi Tony,
let us start with the testCreateSimpleCompositeList
test case. Please check the ecore.ETypedElement_ecore.ETypedElement.eType_ecore.EClassifier_containment_EQUAL_false/upperBound_EQUAL_-1/____EDGE/2
pattern. In the runtime representation of this pattern, I found the following operation BidirectionalJoinOperation@1(http://www.eclipse.org/emf/2002/Ecore#//EReference/containment^BF->[0,2],http://www.eclipse.org/emf/2002/Ecore#//ETypedElement^U->[0])
. This means that you aim to perform a containment
attribute lookup on an object of type ETypedElement
, which is not necessarily an EReference
(e.g., EAttribute
is a good counterexample that actually fails with the assertion error). I guess that the variable source
on which you look up the containment attribute should be of type EReference
in the pattern specification instead of ETypedElement
. The EOperation
based errors might be the same or something very similar as EOperation
is also a subclass of ETypedElement
.
Bests, Greg
Ahh... these are auto-generated patterns so can be wrongly typed (if the pattern generator is buggy). I don't think it is possible to specify such patterns in the editor.
We plan to rework these generated patterns very soon anyway so hopefully this problem will go away.
Thanks! Tony
Hi Greg,
I'm getting a strange assertion exception from EMF when running the pattern matcher for an example with Ecore (I'm searching for a pattern in a metamodel).
In the pattern there's an attribute condition
containment == false
for an EReference. In the debugger, I can see that Democles seems to be trying to get the value of the featurecontainment
for an EOperation, which obviously fails as EOperation does not have this feature. I have no idea why and how this is happening.The exception trace is below.
To try out the example you can import this PSF
You just need to run the project BenchmarxEcoreToSQL as a JUnit Test suite. You should then see the test results for [IBeX] and the assertion exception. While you can debug the code note that it is included as a jar so I'm not exactly sure how you can swap Democles (perhaps just include it earlier in the class path?). If you want to try out a fix I can of course help to set up a more standard workspace without a jar.