Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a patient strategy for unresolveable proxy EObject #7

Open
eclipse-viatra-bot opened this issue Mar 11, 2024 · 2 comments
Open
Labels
bugzilla Issues migrated from Eclipse bugzilla. Query Issues related to the query component of VIATRA, including runtime or pattern language issues.
Milestone

Comments

@eclipse-viatra-bot
Copy link

| --- | --- |
| Bugzilla Link | 398782 |
| Status | NEW |
| Importance | P3 normal |
| Reported | Jan 22, 2013 11:44 EDT |
| Modified | Apr 19, 2016 05:24 EDT |
| Version | oldinquery |
| Depends on | 387119 |
| Reporter | Gabor Bergmann |

Description

Cloned from: 264: Implement a patient strategy for unresolveable proxy EObject
http://github.com/ujhelyiz/EMF-IncQuery/issues/issue/264

Currently EIQ attempts to resolve all proxies, and ignore unresolvable ones (as wall as the spurious RESOLVE notifications). Problem: some initially unresolvable proxies may become resolvable later after all.

Candidate strategy:

  • if unresolvable, put on a "patience" list
  • If a RESOLVE notification is received, compare it against this list. If matched, continue the "comprehension" of the model as before.

Open question:

  • is this strategy feasible e.g. if the set of observed types/features of a non-wildcard engine is extended between the first encounter of the proxy object and the time of resolution?

Raison d'être: Xtext inserts some unresolvable proxies that will magically become resolvable later, and will be resolved with RESOLVE notfications. Lack of RESOLVE support results in "Duplicate deletion" exceptions.

unresolved != unresolvable. These proxies are unresolvable, which is something we were not prepared for so far. In fact, there does not seem to be any way to detect when these proxies become resolvable, except when they are actually resolved. So far, Xtext seems to be nice enough to proactively resolve them.

BIG PROBLEM: neither this resolve message, nor the corresponding "set" is reliable enough.
Culprit is org.eclipse.xtext.linking.lazy.LazyLinkingResource:\

	try {\
		source.eSetDeliver(false);\
		source.eSet(crossRef, target);\
	} finally {\
		source.eSetDeliver(true);\
	}\
```\
This is bad news.

I have filed a bug report with Xtext: \
https://bugs.eclipse.org/bugs/show_bug.cgi?id=387119

Let's hope for the best.
@eclipse-viatra-bot eclipse-viatra-bot added bugzilla Issues migrated from Eclipse bugzilla. legacy Query Issues related to the query component of VIATRA, including runtime or pattern language issues. labels Mar 11, 2024
@eclipse-viatra-bot
Copy link
Author

By Istvan Rath on May 20, 2013 04:35

I'm setting version to "unspecified" as we currently do not (firmly) know when these future ideas will be addressed.

@eclipse-viatra-bot
Copy link
Author

By Abel Hegedus on Apr 19, 2016 05:24

Updating to correct milestone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from Eclipse bugzilla. Query Issues related to the query component of VIATRA, including runtime or pattern language issues.
Projects
None yet
Development

No branches or pull requests

2 participants