You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by to...@apache.org on 2007/12/30 22:02:36 UTC

svn commit: r607588 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java

Author: torehalset
Date: Sun Dec 30 13:02:36 2007
New Revision: 607588

URL: http://svn.apache.org/viewvc?rev=607588&view=rev
Log:
improved relationship matcher

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java?rev=607588&r1=607587&r2=607588&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DbMerger.java Sun Dec 30 13:02:36 2007
@@ -310,7 +310,21 @@
         }
 
         for (DbJoin j1 : j1s) {
+            boolean foundPair = false;
             for (DbJoin j2 : j2s) {
+                if ((j1.getSource() == null) || (j1.getSource().getEntity() == null)) {
+                    continue;
+                }
+                if ((j1.getTarget() == null) || (j1.getTarget().getEntity() == null)) {
+                    continue;
+                }
+                if ((j2.getSource() == null) || (j2.getSource().getEntity() == null)) {
+                    continue;
+                }
+                if ((j2.getTarget() == null) || (j2.getTarget().getEntity() == null)) {
+                    continue;
+                }
+
                 // check entity name
                 if (!j1.getSource().getEntity().getName().equalsIgnoreCase(
                         j2.getSource().getEntity().getName())) {
@@ -328,11 +342,16 @@
                     continue;
                 }
 
-                return true;
+                foundPair = true;
+                break;
+            }
+
+            if (!foundPair) {
+                return false;
             }
         }
 
-        return false;
+        return true;
     }
 
     private static final class LoaderDelegate implements DbLoaderDelegate {