From dev-return-5150-apmail-openjpa-dev-archive=openjpa.apache.org@openjpa.apache.org Mon Jul 30 18:04:17 2007 Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 25675 invoked from network); 30 Jul 2007 18:04:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Jul 2007 18:04:17 -0000 Received: (qmail 47768 invoked by uid 500); 30 Jul 2007 18:04:16 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 47728 invoked by uid 500); 30 Jul 2007 18:04:16 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 47719 invoked by uid 99); 30 Jul 2007 18:04:16 -0000 Received: from Unknown (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Jul 2007 11:04:16 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [192.18.43.133] (HELO sca-es-mail-2.sun.com) (192.18.43.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Jul 2007 18:04:08 +0000 Received: from fe-sfbay-09.sun.com ([192.18.43.129]) by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id l6UI3lJ6019290 for ; Mon, 30 Jul 2007 11:03:47 -0700 (PDT) Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) id <0JM000I016QBFZ00@fe-sfbay-09.sun.com> (original mail from Markus.Fuchs@Sun.COM) for dev@openjpa.apache.org; Mon, 30 Jul 2007 11:03:47 -0700 (PDT) Received: from [129.150.16.182] by fe-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with ESMTPSA id <0JM000BP37HC9SA0@fe-sfbay-09.sun.com> for dev@openjpa.apache.org; Mon, 30 Jul 2007 11:03:13 -0700 (PDT) Date: Mon, 30 Jul 2007 11:03:14 -0700 From: Markus Fuchs Subject: Re: 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 In-reply-to: <89c0c52c0707300713j3b43ebb5id2ea296a39d8986b@mail.gmail.com> Sender: Markus.Fuchs@Sun.COM To: dev@openjpa.apache.org Message-id: <46AE27E2.4000004@sun.com> MIME-version: 1.0 Content-type: multipart/mixed; boundary="Boundary_(ID_vUwRujSpuh1+gI0gNtI0hg)" References: <89c0c52c0707180800t686579faj9cd93fa488f6b1d3@mail.gmail.com> <469E74E0.9060202@Sun.COM> <89c0c52c0707182037raf912aay54d9d14fa9a3b915@mail.gmail.com> <469FAFA8.9070303@sun.com> <89c0c52c0707191158q17ecc7a5u84b029ecf3cc668c@mail.gmail.com> <89c0c52c0707292042o675755e7vf6956a145d936fc6@mail.gmail.com> <8FA688DB-BB72-4566-9DCA-D5F1C6C11A98@apache.org> <89c0c52c0707300545n7d2f2199v86c0b8736f17a568@mail.gmail.com> <89c0c52c0707300713j3b43ebb5id2ea296a39d8986b@mail.gmail.com> User-Agent: Thunderbird 1.5.0.12 (Windows/20070509) X-Virus-Checked: Checked by ClamAV on apache.org --Boundary_(ID_vUwRujSpuh1+gI0gNtI0hg) Content-type: text/plain; name=TestDepthFirstAnalysis-070731.patch Content-transfer-encoding: 7BIT Content-disposition: inline; filename=TestDepthFirstAnalysis-070731.patch Index: openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java =================================================================== --- openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java (revision 561053) +++ openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java (working copy) @@ -35,7 +35,6 @@ private DepthFirstAnalysis _dfa = null; public void setUp() { - setUpGraph1(); } public void setUpGraph1() { @@ -58,30 +57,30 @@ public void setUpGraph2() { Graph graph = new Graph(); - Integer node1 = new Integer(5); - Integer node2 = new Integer(4); + Integer node5 = new Integer(5); + Integer node4 = new Integer(4); Integer node3 = new Integer(3); - Integer node4 = new Integer(2); - Integer node5 = new Integer(1); + Integer node2 = new Integer(2); + Integer node1 = new Integer(1); + graph.addNode(node5); + graph.addNode(node4); + graph.addNode(node3); + graph.addNode(node2); graph.addNode(node1); - graph.addNode(node2); - graph.addNode(node3); - graph.addNode(node4); - graph.addNode(node5); - graph.addEdge(new Edge(node1, node2, true)); - graph.addEdge(new Edge(node2, node3, true)); + graph.addEdge(new Edge(node5, node4, true)); + graph.addEdge(new Edge(node4, node3, true)); graph.addEdge(new Edge(node3, node3, true)); - graph.addEdge(new Edge(node3, node4, true)); - graph.addEdge(new Edge(node4, node1, true)); - graph.addEdge(new Edge(node4, node2, true)); - graph.addEdge(new Edge(node5, node2, true)); + graph.addEdge(new Edge(node3, node2, true)); + graph.addEdge(new Edge(node2, node5, true)); + graph.addEdge(new Edge(node2, node4, true)); + graph.addEdge(new Edge(node1, node4, true)); _dfa = new DepthFirstAnalysis(graph); } public void testNodeSorting() { + setUpGraph1(); Collection nodes = _dfa.getSortedNodes(); assertEquals(4, nodes.size()); - int time = 0; Object node; for (Iterator itr = nodes.iterator(); itr.hasNext();) { @@ -92,13 +91,14 @@ } public void testEdgeTyping() { + setUpGraph1(); Collection edges = _dfa.getEdges(Edge.TYPE_BACK); assertEquals(2, edges.size()); Iterator itr = edges.iterator(); Edge edge0 = (Edge) itr.next(); Edge edge1 = (Edge) itr.next(); - assertTrue((edge0.getTo() == edge0.getFrom()) - || edge1.getTo() == edge1.getFrom()); + assertTrue(edge0.getTo().equals(edge0.getFrom()) + || edge1.getTo().equals(edge1.getFrom())); } public void testBackEdges() { @@ -108,17 +108,17 @@ Iterator itr = edges.iterator(); Edge edge0 = (Edge) itr.next(); Edge edge1 = (Edge) itr.next(); - if (edge0.getTo() == edge0.getFrom()) { + if (edge0.getTo().equals(edge0.getFrom())) { assertTrue(edge0.getCycle() != null && edge0.getCycle().size() == 1); List cycle = edge1.getCycle(); assertTrue(cycle != null && cycle.size() == 4); - assertTrue(((Edge)cycle.get(0)).getFrom() == ((Edge)cycle.get(3)).getTo()); - } else if (edge1.getTo() == edge1.getFrom()) { + assertTrue(((Edge)cycle.get(0)).getFrom().equals(((Edge)cycle.get(3)).getTo())); + } else if (edge1.getTo().equals(edge1.getFrom())) { assertTrue(edge1.getCycle() != null && edge1.getCycle().size() == 1); assertTrue(edge1 == edge1.getCycle()); List cycle = edge0.getCycle(); assertTrue(cycle != null && cycle.size() == 4); - assertTrue(((Edge)cycle.get(0)).getFrom() == ((Edge)cycle.get(3)).getTo()); + assertTrue(((Edge)cycle.get(0)).getFrom().equals(((Edge)cycle.get(3)).getTo())); } else { // should not happen assertFalse(true); @@ -135,11 +135,11 @@ if (edge0.getCycle() == null) { List cycle = edge1.getCycle(); assertTrue(cycle != null && cycle.size() == 3); - assertTrue(((Edge)cycle.get(0)).getFrom() == ((Edge)cycle.get(2)).getTo()); + assertTrue(((Edge)cycle.get(0)).getFrom().equals(((Edge)cycle.get(2)).getTo())); } else if (edge1.getCycle() == null) { List cycle = edge0.getCycle(); assertTrue(cycle != null && cycle.size() == 3); - assertTrue(((Edge)cycle.get(0)).getFrom() == ((Edge)cycle.get(2)).getTo()); + assertTrue(((Edge)cycle.get(0)).getFrom().equals(((Edge)cycle.get(2)).getTo())); } else { // should not happen assertFalse(true); Index: openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/DepthFirstAnalysis.java =================================================================== --- openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/DepthFirstAnalysis.java (revision 561053) +++ openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/DepthFirstAnalysis.java (working copy) @@ -221,7 +221,7 @@ pos = findNodeInPath(edge.getTo(), path); assert (pos >= 0): _loc.get("node-not-on-path", edge, edge.getTo()); } else { - assert (edge.getFrom() == edge.getTo()): + assert (edge.getFrom().equals(edge.getTo())): _loc.get("edge-no-loop", edge).getMessage(); path = null; } @@ -250,7 +250,7 @@ Object other = edge.getOther(node); // Single edge loops are ignored if (node != other) { - if (other == cycleTo) { + if (other.equals(cycleTo)) { // Cycle complete path.add(edge); found = true; @@ -279,7 +279,7 @@ int pos = -1; if (path != null) { for (int i = 0; i < path.size(); i++) { - if (((Edge)path.get(i)).getFrom() == node) { + if (((Edge)path.get(i)).getFrom().equals(node)) { pos = i; } } Index: openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/Edge.java =================================================================== --- openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/Edge.java (revision 561053) +++ openjpa-lib/src/main/java/org/apache/openjpa/lib/graph/Edge.java (working copy) @@ -106,9 +106,9 @@ * given node is not part of this edge. */ public Object getOther(Object node) { - if (_to == node) + if (_to.equals(node)) return _from; - if (_from == node) + if (_from.equals(node)) return _to; return null; } @@ -118,7 +118,7 @@ * this method returns true if either side is equal to the given node. */ public boolean isTo(Object node) { - return _to == node || (!_directed && _from == node); + return _to.equals(node) || (!_directed && _from.equals(node)); } /** @@ -127,7 +127,7 @@ * node. */ public boolean isFrom(Object node) { - return _from == node || (!_directed && _to == node); + return _from.equals(node) || (!_directed && _to.equals(node)); } /** --Boundary_(ID_vUwRujSpuh1+gI0gNtI0hg)--