You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Markus Fuchs <Ma...@Sun.COM> on 2007/07/30 20:08:40 UTC
Re1: svn commit: r557089 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/
openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/
openjpa-lib/src/main/ja
Maybe it just my mail client that's only showing my updated patch to
address the test failure. This is my original comment to Kevin's email:
Hi Kevin, all,
> I have found several places in DepthFirstAnalysis, Graph, Edge, and the
> testcase that was using the wrong equality check. The testcase is working
> much better, but still not perfect.
>
I addressed the == comparison in my workspace and prepared a new patch.
But I only changed the classes TestDepthFirstAnalysis,
DepthFirstAnalysis, and Edge. What did you change in Graph?
> I need some graphing expertise... In the setup for graph 2 in the testcase,
> there is a node that has an edge to itself (Node 3 with Integer 3 has an
> edge to itself). The question is whether this type of edge should be
> classified as a Back edge or a Forward edge. The testcase seems to expect
> this type of edge to be a Forward edge, but the analysis of the graph is
> determining this is a Back edge. I'm not a graphing expert, what's the
> expected type of edge in this case?
>
Single node loops are considered Back edges (Back edges can't occur
during OpenJPA dependency management). For graph 2, the DFA should find:
2 Back edges: (3,3) and (3,2)
2 Forward edges: (2,4) and (1,4) [the edge (1,4) doesn't indicate a cycle]
This results is dependent on the first node chosen for the DFA analysis.
This must must be node 2 for the above result. The starting point is
determined by the order of the nodes in Graph._nodes.
Thanks everybody for looking into this and special thanks to Kevin!
Cheers,
-- markus.