Author: bolbic
Date: Tue Mar 22 20:11:56 2011
New Revision: 1084337
URL: http://svn.apache.org/viewvc?rev=1084337&view=rev
Log:
fixing bug in cyclic relationship handling
Modified:
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
Modified:
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
URL:
http://svn.apache.org/viewvc/tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java?rev=1084337&r1=1084336&r2=1084337&view=diff
==============================================================================
---
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
(original)
+++
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
Tue Mar 22 20:11:56 2011
@@ -683,9 +683,14 @@ public class MappingWrapper {
String child = r.getForeignKeyTable();
if (parent.equals(child)) {
// self-relationship
- // do not add to parent to child map to
avoid loops
// do not add to all children list to
allow root detection
allParents.add(parent);
+ Set children = (Set)
parentToChild.get(parent);
+ if (children == null) {
+ children = new HashSet();
+ parentToChild.put(parent,
children);
+ }
+ children.add(child);
} else {
allParents.add(parent);
allChildren.add(child);
@@ -734,8 +739,7 @@ public class MappingWrapper {
String parent = (String) itParents.next();
if (branch.contains(parent)) {
// we found a cycle
- // we don't handle cycles
- // stop traversing branch to avoid infinite loop
+ // stop traversing branch to avoid infinite
loop if depth greater than threshold
break;
}
// add parent to depth list