nl-utwente-groove / code

GROOVE code base
https://groove.cs.utwente.nl
5 stars 0 forks source link

RETE causes assertion error #298

Open rensink opened 12 years ago

rensink commented 12 years ago

In the attached grammar, running RETE DFS with 10x10_1 as start graph causes the assertion error below: Exception in thread "Thread-4" java.lang.AssertionError at groove.match.rete.ReteNetwork.findNodeCheckerForNode(ReteNetwork.java:905) at groove.match.rete.ReteNetwork.mapEdgesAndNodes(ReteNetwork.java:691) at groove.match.rete.ReteNetwork.addConditionToNetwork(ReteNetwork.java:162) at groove.match.rete.ReteNetwork.addConditionToNetwork(ReteNetwork.java:373) at groove.match.rete.ReteNetwork.build(ReteNetwork.java:138) at groove.match.rete.ReteNetwork.<init>(ReteNetwork.java:125) at groove.match.rete.ReteSearchEngine.<init>(ReteSearchEngine.java:46) at groove.explore.strategy.ReteStrategy.prepare(ReteStrategy.java:78) at groove.explore.Exploration.play(Exploration.java:208) at groove.gui.action.ExploreAction$ExploreThread.run(ExploreAction.java:330)

Reported by: maartenm42

rensink commented 12 years ago

Original comment by: maartenm42

rensink commented 12 years ago

Original comment by: rensink

rensink commented 12 years ago

Original comment by: rensink

rensink commented 12 years ago

I'm adding a much simpler rule that has the same effect.

The bug is due to the fact that, when building a network for a subcondition, root nodes (whose matching is inherited from the parent) are not recognised as already having been matched; if they are isolated (from the point of view of the subcondition) variable nodes, then this gives rise to the assertion error.

Original comment by: rensink

rensink commented 12 years ago

Original comment by: rensink

rensink commented 11 years ago

Original comment by: rensink

rensink commented 11 years ago

Depends on https://sourceforge.net/tracker/?func=detail&aid=3532396&group\_id=119225&atid=2099479

Original comment by: rensink