Skip to content

Changes

Summary

  1. Use overridable factory method for EOLQueryEngine graph node wrapping (details)
Commit 661efa09020cdc4b60d1597ff5ec373457152660 by Antonio Garcia-Dominguez
Use overridable factory method for EOLQueryEngine graph node wrapping

GraphNodeWrapper allows us to hold weak references to nodes, to save memory.
However, when using time-aware queries, we cannot just recover the original
node from its ID: we need the timepoint as well. That means that we need to
wrap the node with a different class.

Until now, we basically had it done on a case-by-case basis, but that was
prone to slips: for instance, following a model element reference from a
time-aware node would give you a non-time-aware wrapper. This was OK until
you tried to run a large query, which resulted in GC'ing of the weak references:
from that point onwards, you'd start to see odd NullPointerExceptions in places.
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/wrappers/FileNodeWrapper.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/predicates/WhenOperation.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/TimeAwareEOLQueryEngine.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/pgetters/GraphPropertyGetter.java
The file was modified core/tests/org.eclipse.hawk.timeaware.tests/src/org/eclipse/hawk/timeaware/tests/SubversionNodeHistoryTest.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/predicates/VersionRangeOperation.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/contextful/TypeFirstAllOf.java
The file was removedcore/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/wrappers/GraphNodeWrapper.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/SinceAnnotatedOperation.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/contextful/FileFirstAllOf.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/UntilAnnotatedOperation.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/contextful/DerivedAllOf.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/pgetters/CGraphPropertyGetter.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/DeriveFeature.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/AbstractHawkModel.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/AfterAnnotatedOperation.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/BeforeAnnotatedOperation.java
The file was modified core/tests/org.eclipse.hawk.integration.tests/src/org/eclipse/hawk/integration/tests/uml/UMLIndexingTest.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/patterns/BoundedVersionQuantifierOperation.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/TimeAwareGraphPropertyGetter.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/contextful/CEOLQueryEngine.java
The file was modified server/tests/org.eclipse.hawk.service.servlet.tests/src/org/eclipse/hawk/service/servlet/ThriftEncodingTest.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/reflective/TimeAwareNodeHistoryOperationContributor.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/EOLQueryEngine.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/WhenAnnotatedOperation.java
The file was removedcore/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/graph/StrongGraphNodeWrapper.java
The file was removedcore/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/graph/TimeAwareGraphNodeWrapper.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/TimeAwareEOLOperationFactory.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/optimisation/OptimisableCollectionSelectOperation.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/scopes/annotations/AbstractAnnotatedOperation.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/optimisation/OptimisableCollection.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/TimeAwareNodeFirstOrderOperation.java
The file was modified core/plugins/org.eclipse.hawk.timeaware/src/org/eclipse/hawk/timeaware/queries/operations/patterns/VersionQuantifierOperation.java
The file was modified core/plugins/org.eclipse.hawk.epsilon/src/org/eclipse/hawk/epsilon/emc/wrappers/GraphEdgeWrapper.java